gpt4 book ai didi

.net - 有没有办法强制对 .NET 标准项目的项目引用到特定的 TargetFramework

转载 作者:行者123 更新时间:2023-12-02 07:31:51 26 4
gpt4 key购买 nike

我是 GitHub 项目的贡献者,最近我们的 .NET Standard 2.0 project installing correctly into a .NET Framework 4.5 project 遇到了一些麻烦。 。造成这种情况的原因是(如果我理解正确的话).NET Standard 2.0 supports a minimum .NET Framework of 4.6.1 .

好吧,很公平。因此,我们更新了 .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应该是TargetFrameworknet471拿起,而不是 net45目标。

有没有办法强制项目引用特定的 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>

预先感谢您提供的任何帮助!

最佳答案

It does not work. VS 2017 15.5.5. Reference from 4.6.2 MSTest project net462 target of multitarget (net462;netstandard2.0) class library. – SerG Feb 13 at 13:34

确实如此,解决这个问题的新方法是:

<ProjectReference Include="..\multitargeted_lib\multitargeted_lib.csproj">
<SetTargetFramework>TargetFramework=netstandard2.0</SetTargetFramework>
</ProjectReference>

来源是here .

关于.net - 有没有办法强制对 .NET 标准项目的项目引用到特定的 TargetFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48526219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com