NetStandard 2.0的参考.net461程序集

Voo*_*Voo 3 .net c# visual-studio .net-standard

根据Microsoft(“来自.NET Standard的.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>
Run Code Online (Sandbox Code Playgroud)

FullFramework / FullFramework.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

  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'.
Run Code Online (Sandbox Code Playgroud)

Evk*_*Evk 5

如果您引用使用“旧” .csproj格式的项目(目标为.NET 4.6.1或更低版本),或者您直接引用库(.dll文件),但由于未知原因(对我而言),则此功能有效-不如果您以“新”格式(如您的问题)使用.csproj引用项目,则无法正常工作。可以争论的是,因为此功能目标是使旧代码的移植更容易-从某种意义上说,不支持新格式的项目,我想这是有意的,而不是有意的。