在TFS Build期间找不到程序集

时间:2015-04-30 20:19:15

标签: visual-studio-2013 tfs msbuild

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

日志文件将显示:

  

2> C:\ Program Files   (86)\的MSBuild \ 12.0 \ BIN \ AMD64 \ Microsoft.Common.CurrentVersion.targets(1696,5):   警告MSB3245:无法解析此引用。找不到   汇编" HtmlAgilityPack"。检查以确保装配存在   在磁盘上。如果您的代码需要此引用,您可能会得到   编译错误。   [C:\构建\ 1 \的Myproj \的Myproj-DEV-站点\ SRC \的Myproj \ MyProj.Domain \ MyProj.Domain.csproj]                    对于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。其次,我不得不删除'包裹'来自TFS的文件夹,转到'源代码管理资源管理器'并从我的项目中删除它。 TFS处理剩下的事情。现在一切都正常建立。

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

1 个答案:

答案 0 :(得分:2)

由于这里没有正式答案(即使OP将其置于上面):

  

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

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