Jenkins使用MSBuild启动目录来构建Visual Studio项目,该启动目录等于第一个SVN模块的本地模块目录

时间:2018-10-02 14:02:48

标签: jenkins svn msbuild

我正在设置一个新的jenkins实例(版本2.138.1)。对于我们的.NET项目,我想使用MSBuild插件并使用预先配置的MSBuild安装进行构建。

要使SonarQube分析正常工作,我必须仅提供MSBuild的解决方案文件名(无路径)。当我这样做时,有时MSBuild找不到解决方案文件,并失败 MSBUILD:错误MSB1009:项目文件不存在。

我们具有几乎相同的不同作业配置(只是不同的解决方案文件)。对于我们的大多数工作,我们必须从SVN中检出多个存储库。现在,某些作业失败并显示此消息,并且某些作业正常运行。

现在在我看到的日志中,MSBuild.exe是从失败作业上的工作区目录开始的,但是是从后续作业上的解决方案目录开始的。没有可以设置此启动目录的参数。

我发现,当要检出的第一个SVN模块(在作业配置中)是带有SLN文件的模块时,则在解决方案目录中启动MSBuild。在所有其他情况下,它都从“ / workspace”开始。

所以简短的故事是:

Jenkins Job with multiple SVN modules:
http://xxx/trunk/module1@HEAD (Local module directory = .\module1)
http://xxx/trunk/module2@HEAD (Local module directory = .\module2)
http://xxx/trunk/moduleWithSolution@HEAD (Local module directory = .\moduleWithSolution)

MSBuild configuration:
MSBuild Build File: MySolution.sln

->构建失败日志显示,msbuild.exe从*** \ workspace开始

当我将配置更改为:

Jenkins Job with multiple SVN modules:
http://xxx/trunk/moduleWithSolution@HEAD (Local module directory = .\moduleWithSolution)
http://xxx/trunk/module1@HEAD (Local module directory = .\module1)
http://xxx/trunk/module2@HEAD (Local module directory = .\module2)

MSBuild configuration:
MSBuild Build File: MySolution.sln

->构建成功-日志显示,msbuild.exe从*** \ workspace \ moduleWithSolution开始

实际的问题是:这真的按设计工作吗? (因为我不这么认为)

0 个答案:

没有答案