为什么我不能在Visual Studio团队服务选择在构建步骤配置的NuGet版本? 似乎每一个其他的NuGet构建步骤(安装程序,发布者)我可以3.3.0和3.5.0之间进行选择,但是这一个我不得不下载nuget.exe,签入源代码管理和提供的路径exe文件。
由于的NuGet 3.3.0不能直接从project.json它将使使包处理这么多的意义,可以选择在此步骤中的版本。
为什么我不能在Visual Studio团队服务选择在构建步骤配置的NuGet版本? 似乎每一个其他的NuGet构建步骤(安装程序,发布者)我可以3.3.0和3.5.0之间进行选择,但是这一个我不得不下载nuget.exe,签入源代码管理和提供的路径exe文件。
由于的NuGet 3.3.0不能直接从project.json它将使使包处理这么多的意义,可以选择在此步骤中的版本。
我想不出任何比较好的理由来看,在仓库谁知道他们是由单独的开发人员创建的任务,也许是通讯科混淆,? :)
您可以通过查看task.json的打包看到这里 ,并发布在这里 ,它只是没有为打包实现的-它在这里对L91发布的。
问题#3636中记录它,一旦解决了这个问题后不久将可在VSTS。
是的,版本的NuGet中的NuGet发布任务到目前为止定义,但不是在的NuGet打包任务。 如果您需要选择的NuGet版本,你可以开发出的NuGet打包类似自己的任务。 所有VSTS任务的代码是在这里 ,供大家参考。
选项2:你可以添加你宛在源代码控制使用的NuGet版本,并添加的NuGet打包任务的路径。 详细信息可以参考这里 。
我有这个确切的同样的问题,得到了一个MS技术支持人员非常有帮助的响应。 此下载3.5.0,如果它不存在一个临时位置,所以避免了有nuget.exe在您的源代码控制系统。
1)添加任务型PowerShell脚本,并放置在它上面你的NuGet打包的一步。
2)将类型设置为“内联脚本”
3)更换与此默认联脚本值:
$v = '3.5.0'
$u = "https://dist.nuget.org/win-x86-commandline/v$v/NuGet.exe"
$p = Join-Path ([IO.Path]::GetTempPath()) "NuGet-$v.exe"
Write-Host "##vso[task.setvariable variable=downloadedNuGetExe]$p"
if (Test-Path $p) { return }
Invoke-WebRequest $u -OutFile $p
4)的NuGet打包构建步骤,设置路径Nuget.exe价值,我们只设置变量:
$(downloadedNuGetExe)
希望这会有所帮助,并感谢MS技术支持人员,阿鲁娜,该解决方案!
[更新2017年11月29日与新功能的信息]
该工具的NuGet安装的任务是管理在构建使用的NuGet版本的首选方式。 见这个博客帖子获取更多信息。