【问题标题】:MSBuild Vs Visual Studio - Differences in compilation?MSBuild Vs Visual Studio - 编译的差异?
【发布时间】:2017-03-14 13:54:28
【问题描述】:

我正在尝试使用 Visual Studio 2015 和本地 TFS 2013 服务器为旧版 VB.Net ASP.Net Forms 应用程序设置持续集成流程。但是,我无法获得构建定义来成功构建我的应用程序。

这是一个 XAML 构建定义,它会在每次 TFS 签入时愉快地触发,但迄今为止未能构建应用程序,原因是编译组件项目时出现与属性相关的错误,例如 'Extended Properties cannot be initialized'

这些项目都在 Visual Studio 中顺利编译,所以我猜这些错误实际上是由于 vbc.exe 编译器的版本,还是 MSBuild 使用的编译器选项?

我尝试将项目中使用的相同编译器设置传递给 MSBuild 参数(见下文),但没有成功。

/p:OptionStrict=false /p:OptionInfer=false /p:OptionExplicit=true /p:OptionCompare=binary

主应用程序项目具有以下 ToolsVersion,在项目文件中指定,但 Visual Studio 是否可以实际使用 MSBuild 不是的更高版本(14 或 15?)?

<Project DefaultTargets="Build" ToolsVersion="12.0"

任何关于为什么这个项目可以在 Visual Studio 中完美构建但不在构建定义中的建议将不胜感激。

【问题讨论】:

  • 构建代理上安装了哪个版本的 Visual Studio?
  • 构建代理是包含构建定义的 TFS 服务器,对吗?如果是这样,它没有安装在那里,但我确实将丢失的 v12.0 引用复制到了以下位置:C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0。编译器已经存在于C:\Program Files (x86)\MSBuild\12.0\Bin
  • VS2015 使用 MSBuild 14,microsoft.com/en-us/download/details.aspx?id=48159chocolatey.org/packages/microsoft-build-tools 你的代理机器上有吗?
  • 谢谢 Lex,这听起来很可能是问题所在。我已经在我们的 TFS 服务器上安装了这些工具(并重新启动了一切),但仍然遇到同样的问题。但是在 MSBuild 日志中 vbc.exe 的路径仍然是 v12 C:\Program Files (x86)\MSBuild\12.0\bin\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections....Do you know how I can force MSBuild to use the v14 vbc.exe?
  • @LexLi 啊,如本页所述msdn.microsoft.com/en-us/library/bb383985.aspx 我现在找到了/toolsversion\tv 参数,这似乎已成功强制编译器的v14.0,非常感谢。 (请随意写下您的评论作为答案,我很乐意接受。

标签: .net vb.net visual-studio tfs msbuild


【解决方案1】:

就像我评论的那样,这里的棘手部分是确定正确的 MSBuild 工具版本,然后以正确的方式使用它。

首先,很难记住他们的 Visual Studio 版本的 MSBuild 版本号。您可以使用谷歌,以下仅供参考,

  • Visual Studio 2015 - MSBuild 14
  • Visual Studio 2017 - MSBuild 15

确保它们存在于执行构建的机器上。

其次,您可能需要覆盖工具版本 (per this article)。

【讨论】:

  • 再次感谢 Lex。我第一次设置 MSBuild 定义,我现在遇到了一个不同的问题,原因是没有在构建代理上安装 VS2015 SDK / VS 2015 本身,我也开始寻找关于不放置的建议TFS,在同一台服务器上构建控制器和构建代理(我希望这样做)。是时候在安装其他任何东西之前做更多阅读了......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 2012-03-05
  • 1970-01-01
  • 2017-02-01
  • 2020-05-17
  • 2011-11-25
  • 1970-01-01
相关资源
最近更新 更多