MSBuild - Jenkins - Nuget 集成

Tom*_*mer 2 msbuild jenkins nuget-package-restore

我们在使用 Jenkins 和 MSBuild 时遇到了一些奇怪的行为。在命令行中手动键入以构建 build.xml 项目时:

msbuild build.xml /T:Package /P:PublishProfile=Test /P:Platform="AnyCPU" 
                  /P:VisualStudioVersion=12.0
Run Code Online (Sandbox Code Playgroud)

构建过程工程完全按照预期(建设,包装等)
但是,如果我使用詹金斯做的正是这一点-那就是-打开命令行并运行此确切的命令,我得到一个错误说:

The command ""..\.nuget\NuGet.exe" install 
"C:\Jenkins\jobs\.....\workspace\MYPROJECT\packages.config" 
-source ""  -NonInteractive -RequireConsent -solutionDir "..\ "" exited with code 1
Run Code Online (Sandbox Code Playgroud)

即使我使用内置的 jenkins 插件来运行命令(无论我使用哪种 parma 组合),它仍然没有。
我知道以下两个听起来像是解决方案,但它们不起作用:

  1. 权限!- 我的服务器总是以管理员身份运行。
  2. 从 VS 在 NuGet 上启用包恢复 - 已经做到了!

任何想法都会很棒!!!

Tom*_*mer 5

这是答案,花了很长时间才解决,多亏了@adarshr,我才意识到问题是因为Jenkins runner 的用户(即jenkins 服务)和我的用户之间存在差异。为了解决这个问题,我让 Jenkins 作为同一个用户运行,一切都很好!

一步步:

  1. 转到控制面板 -> 系统和安全 -> 管理工具
  2. 单击服务快捷方式。
  3. 右键单击 Jenkins 服务并选择属性。
  4. 导航到登录选项卡。
  5. 单击以该用户身份运行并填写您的凭据。
  6. 重启詹金斯。

在此处输入图片说明

奇迹般有效!