gpt4 book ai didi

.net - 是否可以排除 NET40 以上目标框架版本的 nuget 依赖项?

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

我有一个库,它对一些 Microsoft BCL 库具有 NuGet 包依赖性,以便使用一些 .NET 4.5 功能,但保持与 .NET 4.0 的兼容性。

这是packages.config的相关部分

<packages>
<package id="Microsoft.Bcl" version="1.0.19" targetFramework="net40" />
<package id="Microsoft.Bcl.Async" version="1.0.16" targetFramework="net40" />
<package id="Microsoft.Bcl.Build" version="1.0.10" targetFramework="net40" />
<package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
</packages>

由于这些库在 .NET 4.5 及更高版本中不是必需的,因此我想排除 .NET 4.0 以上任何内容的依赖项。

这是否可以在不维护第二个项目文件的情况下实现?谢谢。

最佳答案

如果您只想拥有一个项目文件,您可以创建多个构建配置并在 csproj 文件中使用 msbuild 条件:

<ItemGroup Condition="'$(Configuration)' == 'ReleaseNet40'">
<Reference Include="Microsoft.Threading.Tasks">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.16\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
</Reference>
</ItemGroup>

<PropertyGroup Condition="'$(Configuration)' == 'ReleaseNet40'">
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)' == 'ReleaseNet45'">
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>

关于.net - 是否可以排除 NET40 以上目标框架版本的 nuget 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795566/

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