Visual Studio新的 .csporj 文件非常方便,虽然目前还不支持WPF、WinForm等工程,但应用到控制台程序,类库还是没有任何问题的。只需要简单的用如下内容替换老的csproj即可:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net47</TargetFramework>
</PropertyGroup>
</Project>
由于现在的程序集信息是卸载csproj文件中,和老项目中的Properties文件夹中定义的程序集信息冲突了,需要删除老项目的Properties文件夹。
也可以新建一个.net standard类库,然后修改TargetFramework属性,这样成功率更高。
这里另外介绍一下新的csproj的几个新特性:
1. 集成nuget程序包管理,并且处理依赖性更加精简
<ItemGroup>
<PackageReference Include="NUnit" Version="3.10.1" />
</ItemGroup>
2. 支持直接生成nuget包。
3. 支持多种不同类型的框架输出的
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net47;netstandard2.0</TargetFrameworks>
</PropertyGroup>
</Project>
也支持不同框架下包含不同的程序集和程序包:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>netstandard2.0;net47</TargetFrameworks> </PropertyGroup> <ItemGroup Condition="'$(TargetFramework)' == 'net47'"> <PackageReference Include="Microsoft.Azure.DocumentDB" Version="1.12.0" /> </ItemGroup> <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> <PackageReference Include="Microsoft.Azure.DocumentDB.Core" Version="1.2.0" /> </ItemGroup> </Project>
比之前的share project是要强大不少的。