我刚刚安装了Jenkins 19.2
,我正在使用MSBuild
来构建我的解决方案。
我已成功将Jenkins与我的TFS
集成,我已将我的解决方案下载到Jenkins工作区。
我的本地解决方案可以从VS2015
编译和构建。但是在尝试构建从Jenkins(Jenkins Workspace)下载的解决方案后,我得到了157个错误。
所有错误都属于以下类型:
错误CS0246:类型或命名空间名称''找不到(你错过了使用指令或汇编引用吗?)
我还尝试从命令提示符(c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
)对我的本地解决方案的启动项目运行MSBuild,它构建正常且没有错误。这是从VS2015构建find的本地解决方案。
但是,当我尝试针对从Jenkins (Jenkins Workspace)下载的解决方案的启动项目运行MSBuild(再次c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
)时,我再次收到157错误。
答案 0 :(得分:0)
Visual Studio 2015使用MSBuild版本14.0,而不是您指定路径中的旧版本。当您进入“VS2015的开发人员命令提示符”时,正确的应位于PATH
(c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
)。当您使用较新的MSBuild时,您是否仍然看到错误?
Jenkins似乎能够指定MSBuild位置,因此如果您可以使用较新的MSBuild在本地修复此问题,则应该能够配置Jenkins以调用新的MSBuild。
虽然MSBuild 4.0是.NET Framework的一部分,并且几乎总是在Windows上可用,但MSBuild 12.0及更高版本是Visual Studio组件。您可能必须从the Visual Studio site安装“Microsoft Build Tools 2015”软件包。
答案 1 :(得分:0)
对我而言,它有助于在MSBuild中设置/p:VisualStudioVersion
属性(例如,/p:VisualStudioVersion=14.0
)。
正如Team Services MSBuild Q&A所说:
我应该使用Visual Studio Build步骤还是MSBuild步骤?
如果要构建解决方案,在大多数情况下,您应该使用Visual Studio Build步骤。这一步自动:
- 为您设置
/p:VisualStudioVersion
属性。这迫使MSBuild使用一组特定的目标来增加成功构建的可能性。- 指定MSBuild版本参数。