有条件地包含 NuGet 包

use*_*723 5 visual-studio nuget xamarin-studio

有没有人有条件地在构建中包含 NuGet 包的经验?理想情况下,如果这可以基于构建配置来完成会很好,例如包 A 包含在调试构建中,但包 B 被用于发布构建。

这可能吗?

小智 6

您可以编辑您的 .csproj 文件并包含在 ItemGroup 部分下方以有条件地包含任何包。

<ItemGroup Condition="'$(Configuration)'=='Debug'">
   //Move any package reference here that will only be available in debug mode 
   <PackageReference Include="PackageA" Version="1.0.0.0" />
</ItemGroup>

<ItemGroup Condition="'$(Configuration)'=='Release'">
   //Move any package reference here that will only be available in release mode 
   <PackageReference Include="PackageB" Version="1.0.0.0" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • 请注意 TargetFramework 是 PackageReference 项目允许的唯一支持条件。解决方法是使用“选择/时间”。https://github.com/NuGet/Home/issues/5895 /sf/ask/3136222351/ 仍然必须放置在 Choose/When 中的 ItemGroup 中 (2认同)