在TFS Build期间找不到程序集

Kyl*_*ard 5 msbuild tfs visual-studio-2013

遇到问题的是项目本地编译就好了,但是TFS构建报告无法找到程序集.

日志文件将显示:

2> C:\ Program Files(x86)\ MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1696,5):警告MSB3245:无法解析此引用.无法找到程序集"HtmlAgilityPack".检查以确保磁盘上存在程序集.如果您的代码需要此引用,则可能会出现编译错误.[C:\ Builds\1\MyProj\MyProj-Dev-Site\src\MyProj\MyProj.Domain\MyProj.Domain.csproj] For SearchPath"{HintPathFromItem}".考虑"..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll",但它不存在.

我遇到的问题是该位置肯定有/ packages /文件夹:

C:\构建\ 1 \的Myproj \的Myproj-DEV-网站的\ src \的Myproj \包\

TFS服务器上的相对提示路径是否有所不同?看起来它与它正在检查的.csproj文件有关.我可以在构建输出文件夹上确认包(和DLL)正好是HintPath指定的位置.

更新:我找到了解决问题的方法.这是双重的.一个是我无法读取文件浏览器并且没有注意到我的HtmlAgilityPack文件夹只有包的XML文件,而不是实际的DLL.其次,我必须通过转到'Source Control Explorer'并从我的项目中删除它来从TFS中删除'packages'文件夹.TFS处理剩下的事情.一切都现在正确建立.

更多信息:http: //robertgreiner.com/2013/09/team-foundation-service-build-error-nuget/

Cha*_*yah 2

由于这里没有官方答案(尽管OP将其放在上面):

更新:我找到了问题的解决方案。这是双重的。一是我无法读取文件资源管理器,并且没有注意到我的 HtmlAgilityPack 文件夹只有包的 XML 文件,而不是实际的 DLL。其次,我必须通过转到“源代码管理资源管理器”并将其从我的项目中删除,从 TFS 中删除“packages”文件夹。TFS 处理剩下的事情。现在一切都构建正常了。

似乎从 TFS 运行构建的方式有关,如果“packages”文件夹已经存在,即使在一个完美的位置,即使在本地工作的预期相对位置,MSBuild 只是不会接受该位置并且更喜欢而是递归搜索所有 .targets 目录。无论如何,我可以确认删除..\packages文件夹在 VS2015/TFS2013 中有效。