我是 GitHub 项目的贡献者,最近我们的项目遇到了一些问题.NET Standard 2.0 项目正确安装到 .NET Framework 4.5 项目中 https://github.com/wojtpl2/ExtendedXmlSerializer/issues/160。造成这种情况的原因是(如果我理解正确的话).NET Standard 2.0 支持最低 .NET Framework 4.6.1 https://learn.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support.
好,可以。因此,我们更新了 .csproj 以创建另一个框架输出:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
在我们的测试项目中,支持的框架定义如下:
<TargetFrameworks>netcoreapp2.0;net471;net45</TargetFrameworks>
然而,我们遇到了一个问题net471
构建,因为它似乎正在拾起net45
框架而不是netstandard2.0
。为了使其正常工作,我们必须设置TargetFrameworks
类库如下:
<TargetFrameworks>netstandard2.0;net471;net45</TargetFrameworks>
这似乎有点过分,因为看起来.netstandard2.0
应该是TargetFramework
that net471
拿起,而不是net45
target.
有没有办法强制项目引用特定的TargetFramework
?我确实在我们的测试项目中尝试了以下方法,但似乎不起作用:
<ItemGroup Condition="'$(TargetFramework)' != 'net471'">
<ProjectReference Include="..\..\src\ExtendedXmlSerializer\ExtendedXmlSerializer.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<ProjectReference Include="..\..\src\ExtendedXmlSerializer\ExtendedXmlSerializer.csproj">
<TargetFramework>netstandard2.0</TargetFramework>
</ProjectReference>
</ItemGroup>
预先感谢您提供的任何帮助!