来自Jenkins MSbuild的错误CS0246但是从VS

时间:2016-06-22 14:20:36

标签: jenkins visual-studio-2015 msbuild

我刚刚安装了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错误。

2 个答案:

答案 0 :(得分:0)

Visual Studio 2015使用MSBuild版本14.0,而不是您指定路径中的旧版本。当您进入“VS2015的开发人员命令提示符”时,正确的应位于PATHc:\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版本参数。
  •