首页 文章

Visual Studio Team Services构建失败,因为CoreCompile不引用NuGet程序集

提问于
浏览
0

我遇到了一个奇怪的问题,我的构建在本地机器上完美运行,但几乎总是在Visual Studio Team Services构建代理上失败 . 我说几乎总是相同的代码有时在VSTS构建代理上构建良好 .

错误是对于我的解决方案中的项目,编译器找不到System.Web.Http.dll,它在Microsoft.AspNet.WebApi.Core NuGet包中引用 . 我检查了参考,它就在那里 . 我已经删除了NuGet并重新添加它以修复任何潜在的NuGet打嗝 .

确切的错误是这样的:

错误CS0234:名称空间'System.Web'中不存在类型或命名空间名称'Http'(您是否缺少程序集引用?)

引用位于csproj文件中:

<Reference Include =“System.Web.Http,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL”>
<HintPath> .. \ .. \ Microsoft.AspNet.Cors.5.2.3 \ lib中\ net45 \ System.Web.Cors.dll </ HintPath>
</参考>

VSTS的NuGet还原任务表明已安装所有NuGet包,但构建仍然失败 .

然后,我在Visual Studio Team Services构建代理中成功构建和失败构建的命令行之间进行了区分,发现失败的构建CoreCompile任务缺少某些程序集引用 .

CoreCompile从ResolveAssemblyReferences获取要引用的程序集 . 但ResolveAssemblyReferences声称它找不到System.Web.Http.dll .

对于SearchPath“” . 考虑“.... \ Microsoft.AspNet.WebApi.Core.5.2.2 \ lib \ net45 \ System.Web.Http.dll”,但它不存在 .

从VSO恢复NuGet是否有任何已知问题?我们正在使用NuGet 4.0 .

更新:

Visual Studio Team Services支持回复给我 . 我有自己的nuget.config,它有以下两行 . 这干扰了构建代理上的全局NuGet缓存 . 一旦我删除了这两行,一切都按预期顺利进行 .

<add key =“globalPackagesFolder”value =“.. \ nupkgs”/>
<add key =“PackageSaveMode”value =“nuspec”/>

2 回答

  • 0

    看起来,在某些时候,这个引用是手动添加的,相对路径在本地PC上匹配 .

    在我看过的每个有效的nuget引用中,这些相对路径都以“packages”为前缀 . 尝试删除nuget包,删除此引用,然后重新安装 .

  • 0

    以下是我遇到的问题的答案 .

    Visual Studio Team Services支持回复给我 . 我有自己的nuget.config,它有以下两行 . 这干扰了构建代理上的全局NuGet缓存 . 一旦我删除了这两行,一切都按预期顺利进行 .

    <add key =“globalPackagesFolder”value =“.. \ nupkgs”/>
    <add key =“PackageSaveMode”value =“nuspec”/>

相关问题