Nuget包还原在TFS构建服务器上不起作用

时间:2014-10-06 12:45:34

标签: nuget tfsbuild

我关注了this博客文章,我希望Nuget能够正常工作。它显然没有。我的所有第三方dll都出错,我希望NuGet自动更新:

 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\
Microsoft.WebApplication.targets (182): Could not copy the file "bin\AutoMapper.dll"
 because it was not found.

我已正确设置所有内容,并确保解决方案已启用包恢复。如果我在本地删除一个包并构建,NuGet会为我恢复该包。

我不知道为什么它在构建服务器上没有功能。

任何建议?

2 个答案:

答案 0 :(得分:1)

尝试将NugetRestore活动添加到TFS工作表

enter image description here

注意:

对于Team Foundation Build 2013内部部署和Visual Studio Team Services(以前称为Team Foundation Service),默认的构建过程模板已经实现了NuGet Package Restore工作流,无需任何特殊配置。

答案 1 :(得分:0)

我遇到了log4net nuget包的类似错误,我以不同的方式解决了它。可能有一天这对某人有用。

来自TFS Team Build 2015的错误

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\ Microsoft.WebApplication.targets (182): Could not copy the file "bin\Log4net.dll" because it was not found.

<强>原因

无法找到.csproj文件中用于引用项目中包的nuget包的路径

解决

编辑出现错误的项目的.csproj文件。 在.csproj文件中查找节点ItemGroup 您将看到HintPath指向一个文件夹,大多数文件夹包含解压缩程序的名称,以及它将提交DLL的位置。 将HintPath替换为<HintPath>..\..\Assemblies\3rd party\log4net\1.2.10.0\2.0\log4net.dll</HintPath>

你的nuget包库可能不是log4net而是一个不同的库。一种非常简单的方法是在包含相同nuget包库的解决方案中编辑项目的.csproj文件,复制ItemGroup中nuget的引用并替换具有错误的项目。该引用应该包含...\Assemblies\3rd party\ ...而不是计算机上的物理文件位置