C# 参考NetStandard2.0中的.net461程序集
根据(“引用.NET标准中的.NET Framework库”),我们可以引用完整的框架库如果您引用使用“old”.csproj格式(和目标.NET 4.6.1或更低)的项目,或者您直接引用库(.dll文件),但未知(对于我而言),此功能有效原因-如果您以“新”格式引用带有.csproj的项目(如您的问题中所述),则不起作用。有人可能会说,因为此功能的目标是使旧代码的移植更容易,所以不支持新格式的项目是有道理的,我想这更多的是一种疏忽而不是故意的。NetStandard项目是可移植的,这意味着它可以在Linux或Mac机箱中使用。当它试图引用一个只针对.NET4.6.1的类库时,您认为它会做什么?如果您使用“旧”csproj格式引用项目,它会起作用。有一定的意义(但不是太多),因为这主要是为了移植旧代码,而“新”csproj格式根本不存在。如果您直接引用.dll也可以工作(在这种情况下,使用哪个csproj当然无关紧要)。@Evk-Oh它确实可以工作。我自动转换了项目,因为新的csproj+PackageReference非常棒(是的,我知道我也可以将它与旧格式一起使用,但我没有将它与nuget、projects等进行非常棒的新分离)。这是有道理的,保留旧格式不是什么大问题,但我不理解这种限制。在尝试时,它实际上有点糟糕:如果你不想看到编译错误,你也不能使用新的PackageReference功能(考虑到引用项目中packages.config和packagesreference之间的差异,这在某种程度上是有意义的)。您是否可以将您的评论转换为答案,这样我们就可以结束这个问题?如果我也不忘的话,我会多加一点代表,尽管我猜您也不再太在意这一点:-)C# 参考NetStandard2.0中的.net461程序集,c#,.net,visual-studio,.net-standard,C#,.net,Visual Studio,.net Standard,根据(“引用.NET标准中的.NET Framework库”),我们可以引用完整的框架库如果您引用使用“old”.csproj格式(和目标.NET 4.6.1或更低)的项目,或者您直接引用库(.dll文件),但未知(对于我而言),此功能有效原因-如果您以“新”格式引用带有.csproj的项目(如您的问题中所述),则不起作用。有人可能会说,因为此功能的目标是使旧代码的移植更容易,所以不支持新格式的项目是有道理的,我想这更多的是一种疏忽而不是故意的。NetStandard项目是可移植的,这意味着它可
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FullFramework\FullFramework.csproj" />
</ItemGroup>
</Project>
<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'.