首页 文章

新的.net核心视觉工作室2017项目nuget恢复CI构建定义

提问于
浏览
4

所以目前,我正在研究 Visual Studio 2017 中的 .net core 项目 . 我还需要在VSTS中设置CI(持续集成) .

这是我的构建定义中的nuget restore步骤

enter image description here

但我的构建失败,因为它无法恢复任何包 . 这是它的日志 . 它说“此解决方案中没有任何项目指定任何包” . 我知道在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 回答

  • 3

    您需要使用NuGet 4.0 .

    从官方NuGet网站下载它 . https://dist.nuget.org/index.html

    将它放在您拥有构建代理程序的计算机上的文件夹中 .

    在NuGet还原步骤的高级设置中,将NuGet版本设置为自定义 .

    在NuGet.exe路径中,指定放置NuGet.exe文件的路径 . 这是运行构建代理程序的计算机上的路径 . 我尝试了一个相对路径,但无法让它工作,所以最后我已经放了一条绝对路径 . 如果您有多个具有不同路径的代理,则可能会出现问题,因此您可能需要弄清楚如何正确指定相对路径 .

  • 2

    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))

相关问题