Nuget.exe 打包超时

Nuget.exe pack times out

作为构建过程的一部分,它与 NuGet 打包并推送到 NuGet 服务器。一切正常,但在将 NuGet 版本更新到最新版本后,它只是挂在 pack 命令上。 我在构建过程中使用 F#Fake,经过相当长的一段时间 nuget.exe pack 命令才超时:

Running build failed.
Error:
System.Exception: Process E:\Builds\projectName\build\tools\nuget\nuget.exe pack -Symbols -Version 1.0.0.0-pre -OutputDirectory "E:\Builds\projectName\build\package\out" "E:\Builds\projectName\build\package\tmp\template.nuspec" -NoPackageAnalysis    timed out.
   at Fake.NuGetHelper.NuGet(FSharpFunc`2 setParams, String nuspecOrProjectFile) in D:\code\FAKE\src\app\FakeLib\NuGet\NugetHelper.fs:line 423
   at FSI_0005.Build.clo@163-25.Invoke(Unit _arg10)
   at Fake.TargetHelper.runSingleTarget(TargetTemplate`1 target) in D:\code\FAKE\src\app\FakeLib\TargetHelper.fs:line 626

更新: 同样的命令直接没有 Fake 的包装,在下面的行中挂起大约 20 分钟:

NuGet Version: 4.4.1.4656
Attempting to build package from 'template.nuspec'.

它终于创建了包,但从来没有这么长。 我用 NuGet v2.8.6 测试过,同样的操作需要几秒钟。

经过反复试验,我发现任何 4+ 版本的 NuGet 都存在创建包需要很长时间的问题。

我已经在 v3.5.0 上停止了,打包时间没问题。

但是它有 another unexpected/frustrating change,它强制版本规范化,即如果请求使用 1.0.123.0 打包,则生成 nuspec 时使用 1.0.123 跳过最后一个 0。 更新:显然,版本规范化是对 3.4 及更高版本的 documented 重大更改。