Nuget更新 - 指定要定位的MSBuild配置

时间:2015-12-22 15:20:24

标签: visual-studio msbuild nuget

有没有办法限制nuget update命令只更新符合特定条件的.proj引用? (或者是一个聪明的解决方法,以达到预期的结果)

方案

我有一个项目文件,根据${Configuration}引入不同的引用  类型。因此,例如,如果${configuration}ProjRef匹配,则会将某些外部引用设置为ProjectReferences。如果${configuration}与标准ReleaseDebug匹配,则会将某些外部参考设置为References

这非常有效,直到将nuget添加到混音中。如果我通过命令行运行nuget更新,它将修改${configuration}条件之外的.proj文件,因此,如果添加的行在 ${configuration}之后,则覆盖它们条件句。

实施例

在运行Nuget更新之前

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

  <Reference Include="X">
  <HintPath>path\1.2.2\X.dll</HintPath>

</ItemGroup>

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'ProjRef|AnyCPU' ">

  <ProjectReference Include="X.vbproj">
  <Name>X</Name>
  </ProjectReference>

</ItemGroup>

运行Nuget更新后:

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">


</ItemGroup>

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'ProjRef|AnyCPU' ">

  <ProjectReference Include="X.vbproj">
  <Name>X</Name>
  </ProjectReference>

</ItemGroup>

<ItemGroup>

  <Reference Include="X">
  <HintPath>path\1.2.3\X.dll</HintPath>

</ItemGroup>

请注意,nuget update添加的行将覆盖特定于配置的行,导致没有项目引用 - 即使使用ProjRef配置构建。

0 个答案:

没有答案