所以目前,我正在研究 Visual Studio 2017 中的 .net core 项目 . 我还需要在VSTS中设置CI(持续集成) .
这是我的构建定义中的nuget restore步骤
但我的构建失败,因为它无法恢复任何包 . 这是它的日志 . 它说“此解决方案中没有任何项目指定任何包” . 我知道在VS2017中他们改变了nuget包的处理方式 . 任何人都有这方面的想法或经验?
2017-03-22T20:25:11.9517911Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
2017-03-22T20:25:11.9674167Z Nothing to do. None of the projects in this solution specify any packages for NuGet to restore.
2017-03-22T20:25:11.9830425Z ##[section]Finishing: NuGet restore **/*.sln
我不想使用 dotnet restore
因为微软这么说
.NET Core的dotnet restore命令当前不支持加密凭据 . 要通过dotnet还原使用VSTS NuGet提要,您需要以纯文本格式指定个人访问令牌 .
所以我不想存储我的个人访问令牌 . https://www.visualstudio.com/en-us/docs/package/nuget/auth#net-core
2 回答
您需要使用NuGet 4.0 .
从官方NuGet网站下载它 . https://dist.nuget.org/index.html
将它放在您拥有构建代理程序的计算机上的文件夹中 .
在NuGet还原步骤的高级设置中,将NuGet版本设置为自定义 .
在NuGet.exe路径中,指定放置NuGet.exe文件的路径 . 这是运行构建代理程序的计算机上的路径 . 我尝试了一个相对路径,但无法让它工作,所以最后我已经放了一条绝对路径 . 如果您有多个具有不同路径的代理,则可能会出现问题,因此您可能需要弄清楚如何正确指定相对路径 .
Nuget还原任务只包括Nuget.exe 3.3和3.5,因此没有4.0的选项 . 您可以检查
[build agent folder]\tasks\NuGetInstaller\[version]\ node_modules\nuget-task-common\NuGet
文件夹中的文件 .您可以构建自定义生成/发布任务以包含nuget.exe 4.0并改为使用此任务 . 更多信息,请参阅Add a build task .
另一方面,您可以将Nuget.exe添加到源代码控制,然后将其映射到构建代理(构建定义的存储库选项卡)并指定具有内置变量的路径(例如
$(build.sourcesdirectory))