TeamCity更改csproj文件中的提示路径

时间:2016-11-17 19:30:59

标签: c# msbuild nuget teamcity csproj

TeamCity正在更改csproj文件中某些nuget包的hintpath属性。因此,它正在为特定的nuget包恢复错误的版本,并且我在CI服务器上出现构建错误。即使我自己拉回购物并重建和恢复,一切都运行正常。

以下是我在git中的内容:

<Reference Include="SimpleInjector, Version=3.2.3.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
  <HintPath>..\packages\SimpleInjector.3.2.3\lib\net45\SimpleInjector.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="SimpleInjector.Packaging, Version=3.2.3.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
  <HintPath>..\packages\SimpleInjector.Packaging.3.2.3\lib\net40-client\SimpleInjector.Packaging.dll</HintPath>
  <Private>True</Private>
</Reference>

以下是TeamCity中的内容:

<Reference Include="SimpleInjector">
  <HintPath>..\packages\SimpleInjector.3.2.7\lib\net45\SimpleInjector.dll</HintPath>
</Reference>
<Reference Include="SimpleInjector.Packaging">
  <HintPath>..\packages\SimpleInjector.Packaging.3.2.7\lib\net40-client\SimpleInjector.Packaging.dll</HintPath>
</Reference>

我不知道为什么会发生这种情况或如何预防。任何人都有这个问题的经验或知道我可以改变以防止它的项目设置?

1 个答案:

答案 0 :(得分:0)

问题是构建配置已设置为在nuget restore构建步骤中更新nuget包。我假设当package.config与本地软件包不同时,只有缓存的nuget软件包会更新,但事实并非如此。如果有机会并且该标志设置为true,TeamCity将始终更新到最新的稳定nuget包。