来自netstandard 2.0的参考.net461程序集

时间:2018-02-22 17:06:54

标签: c# .net visual-studio .net-standard

根据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'.

1 个答案:

答案 0 :(得分:4)

如果您引用使用“旧”.csproj格式(并且目标是.NET 4.6.1或更低版本)的项目,或者您直接引用库(.dll文件),但是对于未知(对我而言)的原因,此功能有效 - 如果您使用“新”格式的.csproj引用项目(如在您的问题中),则无效。有人可能会争辩说,因为这个功能目标是为了更容易移植旧代码 - 这有点意义,不支持新格式的项目,我想这更像是一种疏忽而非故意。