TeamCity - MSBuild无法找到NuGet引用

See*_*vil 13 msbuild teamcity nuget

试图在TeamCity中构建一个对NuGet包中的程序集有大量引用的C#项目失败,但在Visual Studio中工作正常.

在日志中找到;

For SearchPath "{HintPathFromItem}".

[13:48:15][ResolveAssemblyReference]         
Considered "..\packages\AspNetMvc.4.0.20126.16343\lib\net40\System.Web.Mvc.dll", but it didn't exist.
Run Code Online (Sandbox Code Playgroud)

项目文件中的引用是;

<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\packages\AspNetMvc.4.0.20126.16343\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?它似乎不是从正确的目录开始,因此无法解析存在于.csproj文件上一级的"../packages".

Tja*_*art 9

我知道这已经得到了回答,但也许其他人也遇到了同样的问题.

我的项目文件中的提示路径错误地指向包并将其更改为..packages为我修复它.

所以改变它:

<Reference Include="Newtonsoft.Json">
  <HintPath>packages\Newtonsoft.Json.5.0.5\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

对此:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.5.0.5\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

固定它.


See*_*vil 6

自从安装NuGet软件包以来,我重新构建了我的项目,所以即使'../packages'对于主项目来说是正确的,也不适用于已被移动的其他项目.

卸载并重新安装NuGet包正确地或更直接地写入路径,在每个.csproj文件中的路径上执行查找和替换.