来自 netstandard 2.0 的参考 .net461 程序集
Reference .net461 assembly from netstandard 2.0
根据 Microsoft("Reference .NET Framework libraries from .NET Standard") 我们可以从 .NetStandard 2.0 项目中引用 <= .NET 4.6.1 的完整框架库,以帮助迁移以 [=27 开头的现有代码=] 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'.
如果您引用使用 "old" .csproj 格式(目标 .NET 4.6.1 或更低版本)的项目,或者您直接引用库(.dll 文件),但对于未知 (对我来说)原因 - 如果您以 "new" 格式引用带有 .csproj 的项目(如您的问题),则不起作用。有人可能会争辩说,因为此功能的目标是使旧代码的移植更加容易 - 不支持新格式的项目在某种程度上是有道理的,我想这更多是一种疏忽而不是故意的。
根据 Microsoft("Reference .NET Framework libraries from .NET Standard") 我们可以从 .NetStandard 2.0 项目中引用 <= .NET 4.6.1 的完整框架库,以帮助迁移以 [=27 开头的现有代码=] 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'.
如果您引用使用 "old" .csproj 格式(目标 .NET 4.6.1 或更低版本)的项目,或者您直接引用库(.dll 文件),但对于未知 (对我来说)原因 - 如果您以 "new" 格式引用带有 .csproj 的项目(如您的问题),则不起作用。有人可能会争辩说,因为此功能的目标是使旧代码的移植更加容易 - 不支持新格式的项目在某种程度上是有道理的,我想这更多是一种疏忽而不是故意的。