建立standard类型的类库
- 新建项目,选择**standard内库
注意:不能是.NET Framework,小博说这个不行,我没试过
- 项目创建完成是这样子的,双击当前项目
- 修改标记区域
- 修改前:首先F6,生成一次解决方案
然后将
netstandard2.0 中的netstandard2.0修改为所需且能识别的.NET**注意:** <br /> TargetFrameworks 后面是有 s的。 <br /> 然后.NET的标识符尽量全部大写。需要什么版本就写什么版本。
代码
<PropertyGroup>
<TargetFrameworks>NET35;NET40</TargetFrameworks>
</PropertyGroup>
按F6生成解决方案,此时会提示,选择全部重载
- 重载完毕后,右侧依赖项会多两个刚添加的类型
- 添加更多版本,直接在后面添加;netXXXX
Nuget方式添加AutoCAD[或者其它CAD]的
- 添加**Nuget**管理包
- 输入对应的包,选择安装
- 后期调整
安装后可能会出现CAD内库版本与.NET版本不对应,那么需要手动调整左侧解决方案内的代码,使其对应,调整完毕后F6一次,无错误即可。
- 调整多项目
由于cad的每个版本依赖的api和net版本都不一致,因此为了区分版本,需要在每个net版本下分别引用cad的dll,这就需要分别设置。在项目文件里插入如下的片段:
<ItemGroup Condition="'$(TargetFramework)' == 'NET45'">
<PackageReference
Include="AutoCAD.NET" Version="[20.0.0,21.0.0)"</PackageReference>
</ItemGroup>
每个net版本都需要插入一个ItemGroup。
Include=”AutoCAD.NET” 这句就是引用nuget里桌子提供的包名
Version=”[20.0.0,21.0.0)” 这句的意思就是包的版本最低为20.0,最高不超过21.0,目的就是为不同的版本限定包的版本。
一般情况下没有括号,默认就是数字版本号,使用默认就好了。
有时在nuget安装包之后,在项目文件里有可能会出现如下的内容:
<ItemGroup Condition="'$(TargetFramework)' == 'NET46'">
<PackageReference Include="AutoCAD.NET" Version="[21.0.0,22.0.0)">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build;native;contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
注释掉就可以了。不然有可能会编译不通过。
Version=”[21.0.0,22.0.0)”中[……….)的用法:
多条件编译
- **设置条件编译符号**
默认的条件编译符号为NET46这些,所以如果想要定义一些
别名方便区分cad的版本的话,可以按如下的方式进行:
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants>DEBUG</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'NET35'">
<DefineConstants>$(Configuration);ac2010</DefineConstants>?
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'NET40'">
<DefineConstants>$(Configuration);ac2013</DefineConstants>?
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'NET47'">
<DefineConstants>$(Configuration);ac2020</DefineConstants>?
</PropertyGroup>
上面的NET45和ac2015都可以作为条件编译符号,为了书写和查看方便,就acxxx好一点
- 在**vs里可以通过在编辑区左上角切换不同的net版本。切换版本之后,当前版本有效的代码会高亮,其他版本有效的代码会变灰。**
- 版本一
- 版本二
写代码
特别鸣谢
以上内容感谢小博老师指导,感谢小山山实践
笔记作者:小轩轩,2019年9月22日17时**