【问题标题】:error CS0246 from Jenkins MSbuild but compiles fine from VS来自 Jenkins MSbuild 的错误 CS0246 但从 VS 编译得很好
【发布时间】:2016-10-24 13:28:53
【问题描述】:

我刚刚安装了Jenkins 19.2,我正在使用MSBuild 来构建我的解决方案。

我已成功将 Jenkins 与我的 TFS 集成,并且我已将我的解决方案下载到 Jenkins 工作区。

我的本​​地解决方案可以从 VS2015 编译和构建。但是在尝试构建从 Jenkins (Jenkins Workspace) 下载的解决方案后,我收到了 157 个错误。

所有错误都属于以下类型:

错误 CS0246:找不到类型或命名空间名称“”(您是否缺少 using 指令或程序集引用?)

我还尝试从命令提示符 (c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe) 对 我的本地解决方案的启动项目 运行 MSBuild,它构建良好,没有错误。这是从 VS2015 构建的本地解决方案。

但是当我尝试针对从 Jenkins 下载的 解决方案的启动项目(Jenkins Workspace)运行 MSBuild(再次c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe)时,我再次收到 157 错误。

【问题讨论】:

  • 在 Visual Studio Team Services 中遇到类似问题。使用我的本地机器甚至托管的 VSTS 构建代理构建良好。使用本地构建代理,我得到 CS0246 错误。让我相信我们的本地代理上没有正确安装/配置一些东西,但不知道它可能是什么。

标签: jenkins visual-studio-2015 msbuild


【解决方案1】:

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”包。

【讨论】:

  • 我使用了 c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe /p:Configuration=Release;TargetFrameworkVersion=v4.5.1;ToolsVersion=4.0 /t:rebuild,但是我仍然遇到同样的错误。
  • 为什么要在命令行指定目标框架和工具版本?如果您打开 Visual Studio 命令提示符并只执行 msbuild ,那是否有效?
  • 当我针对我的本地解决方案使用 MSBuild 时,它构建时没有错误。但是,当我针对从 Jenkins 下载的解决方案(应该与我在本地使用的解决方案相同)使用 MSBuild 时,我得到了所有这些错误。
  • 这个有什么解决办法吗,我也遇到了同样的问题?
【解决方案2】:

对我来说,它有助于在 MSBuild 中设置 /p:VisualStudioVersion 属性(例如,/p:VisualStudioVersion=14.0)。

正如Team Services MSBuild Q&A 所说:

我应该使用 Visual Studio 构建步骤还是 MSBuild 步骤?

如果您正在构建解决方案,在大多数情况下,您应该使用 Visual Studio 构建步骤。这一步自动进行:

  • 为您设置/p:VisualStudioVersion 属性。这会强制 MSBuild 使用一组特定的目标,从而提高构建成功的可能性。
  • 指定 MSBuild 版本参数。

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多