尝试使用.nuspec文件在.csproj上运行NuGet.exe包。
一切都在当地运作良好。我已经在源代码中检查了NuGet.exe。这个特殊的NuGet包与.nuspec文件中列出的任何其他NuGet包没有任何依赖关系(即使它确实如此,它们也可以在源代码管理中使用)。我希望NuGet.exe能够在构建机器上运行而不尝试与Web上的任何内容进行交互。
在源树的根文件夹中检查了一个NuGet.config文件,但在构建计算机上运行的命令行命令似乎忽略了它。该版本似乎是2.6.40619.9041(在我的本地计算机上,与检入版本控制的nuget.exe相同)。
在构建计算机上,它最初因“同意”错误而失败,如下所示:
Package restore is disabled by default. To give consent, open the Visual Studio Options dialog, click on Package Manager node and check 'Allow NuGet to download missing packages during build.' You can also give consent by setting the environment variable 'EnableNuGetPackageRestore' to 'true'.
这看起来很奇怪,因为在这个特定的例子中,没有要恢复的包。我正在尝试构建一个没有任何其他包依赖项的包。为了解决这个错误,我开始通过强制启用EnableNuGetPackageRestore环境变量来运行它(在MSBuild Exec任务中),如下所示:
Command="(set EnableNuGetPackageRestore=true) & $(NuGetExe) pack $(NuGetSpecFile) $(NuGetPackArgs)"
在获得同意问题后,构建计算机构建日志中的下一个错误是:
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 168.62.224.25:443
该IP地址是nuget.org的地址。
似乎nuget.exe正在尝试执行自动更新本身或其他任务。
Q1:有没有办法禁用此行为?如果是自动更新,我可以通过某种命令行选项来阻止它。
Q2:虽然nuget docs网站将-ConfigFile列为“nuget pack”的有效参数,但它不会接受它。该参数应该有效吗?
问题3:如果所有其他方法都失败了,我如何让NuGet.exe查看我们的内部ProGet服务器(它可以访问它),而不是试图查看nuget.org(访问被阻止)? / p>
答案 0 :(得分:2)
在我检查了%LOCALAPPDATA%\ NuGet中找到的版本后,它停止尝试访问网络。