如何为不同的构建配置指定不同的nuget包版本?

Rom*_*kov 4 csproj nuget

我想为不同的项目配置指定不同的包版本。我知道这在我的 .csproj 文件中对于非 NuGet 依赖项(“裸”DLL)会是什么样子,但我也想尝试让它与 NuGet 包一起使用。

问题是 NuGet 依赖项是在 packages.config 中指定的,而不是在 .csproj 文件中指定的,我可以在其中使用 MSBuildCondition属性。由于似乎没有任何关于 packages.config 及其支持的属性的文档,这一事实使情况变得更加复杂。

这可以做到吗?如何?

Ani*_*aha 5

2019 PackageReference 中,您可以使用 PackageReference 节点直接在项目文件中管理 NuGet 依赖项(而不是单独的 packages.config 文件) 。

<ItemGroup>
<!-- ... -->
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" Condition="'$(TargetFramework)' == 'net452'" />
<!-- ... -->
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,您可以查看此链接

Visual Studio 2017 版本 15.7 及更高版本支持将项目从 packages.config 管理格式迁移到 PackageReference 格式