【发布时间】:2020-01-26 07:46:26
【问题描述】:
通过 Azure DevOps 管道构建的解决方案有一些使用条件包引用的项目,例如:
<Choose>
<When Condition="'$(Configuration)'=='Debug'">
<ItemGroup>
<PackageReference Include="Mock.MyPackage" Version="1.0.0" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<PackageReference Include="MyPackage" Version="1.2.0" />
</ItemGroup>
</Otherwise>
</Choose>
包源是私有 NuGet 源。
dotnet restore 任务不遵守条件包选择。 (它会恢复 Mock.MyPackage)
问题:
如何有条件地恢复包(基于 $Configuration)?
备注:
我还尝试通过指定 MsBuild 参数在 Visual Studio 构建任务期间进行恢复:/t:restore。
在这种情况下,它会失败并显示一条消息:无法从远程源检索有关 XX 的信息。如果此命令可以恢复包,我如何为私人提要指定授权参数?
Github 上有一个问题:https://github.com/NuGet/Home/issues/5895 最后提到了这个问题。
【问题讨论】:
-
我一直无法让 ItemGroups 与条件语句一起使用。这就像它是 MSBuild 的一个损坏的功能之类的。
-
在 VS 2019 中构建时有效,但在 DevOps 中无效。
标签: msbuild azure-devops nuget-package-restore dotnet-restore