1

尝试在带有 .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 文档站点将 -ConfigFile 列为“nuget pack”的有效参数,但它不会接受它。该参数应该起作用吗?

Q3:如果一切都失败了,我如何让 NuGet.exe 查看我们的内部 ProGet 服务器(它可以访问)而不是尝试查看 nuget.org(访问被阻止)?

4

1 回答 1

2

嗯,我签入了 NuGet.exe“引导程序”而不是实际程序。

一旦我签入在 %LOCALAPPDATA%\NuGet 找到的版本,它就会停止尝试访问网络。

于 2013-07-31T17:47:36.783 回答