根据Microsoft("来自.NET Standard&#34的参考.NET Framework库),我们可以从.NetStandard 2.0项目中引用完整的框架库< = .NET 4.6.1来帮助从Visual Studio 15.3开始迁移现有代码
那为什么以下不起作用?
NetStandard / NetStandard.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FullFramework\FullFramework.csproj" />
</ItemGroup>
</Project>
FullFramework / FullFramework.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
</Project>
给我以下错误:
error NU1201: Project FullFramework is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Project FullFramework supports: net461 (.NETFramework,Version=v4.6.1)
error : Project '..\FullFramework\FullFramework.csproj' targets 'net461'. It cannot be referenced by a project that targets '.NETStandard,Version=v2.0'.
答案 0 :(得分:4)
如果您引用使用“旧”.csproj格式(并且目标是.NET 4.6.1或更低版本)的项目,或者您直接引用库(.dll文件),但是对于未知(对我而言)的原因,此功能有效 - 如果您使用“新”格式的.csproj引用项目(如在您的问题中),则无效。有人可能会争辩说,因为这个功能目标是为了更容易移植旧代码 - 这有点意义,不支持新格式的项目,我想这更像是一种疏忽而非故意。