软件包未在MSBuild Server上下载

时间:2016-07-12 14:19:38

标签: asp.net-mvc visual-studio msbuild nuget nuget-package-restore

ASP.NET 4.5 MVC应用程序

在本地构建/运行

包文件夹未检入源代码管理

源代码控制如下所示:

MyProject
  -.nuget
  -.tfignore
  -MyProject.Web
  -MyProject.Utilities
  -MyProject
  -MyProject.sln

在.nuget文件夹中,只有一个文件:NuGet.config,里面有这个:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>

我可以在本地删除packages文件夹,运行它,然后再次正确地下载所有内容。

当我从Visual Studio开始构建解决方案并将其部署到Azure Cloud Service时,构建失败说:

The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

1 个答案:

答案 0 :(得分:0)

执行此操作的“新”方法是运行

nuget.exe恢复“MySolution.sln”

我将我的(版本化的)nuget.exe文件放在我的构建服务器上,如下所示:

c:\MyProgFiles\NuGet\2.8.6\nuget.exe
c:\MyProgFiles\NuGet\3.3.0\nuget.exe

然后在我建立之前,我打电话给

"c:\MyProgFiles\NuGet\2.8.6\nuget.exe" restore "c:\MyFullPath\MySolution.sln"

您还可以阅读“如何清理旧的nuget东西”

http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

(尽可能使用CI宏创建文件名)

我还将这些行放在“nuget restore”之前,以帮助调试。

"c:\MyProgFiles\NuGet\2.8.6\nuget.exe" sources list

"c:\MyProgFiles\NuGet\2.8.6\nuget.exe" locals all -list

BTW:如果你有一个软件包源可能会删除软件包,那么将它添加到你的构建脚本中(在上面提到的“恢复”之前)

"c:\MyProgFiles\NuGet\2.8.6\nuget.exe" locals all -clear

这将清除您的本地缓存并强制重新下载。

同样,此处的值仅在您使用包被删除的源时才会显示。