【问题标题】:How come my solution builds in Visual Studio but not from the command line using msbuild?为什么我的解决方案是在 Visual Studio 中构建的,而不是使用 msbuild 从命令行构建的?
【发布时间】:2012-10-23 08:27:19
【问题描述】:

如果有人知道从哪里开始解决此问题,我很乐意听到。我刚刚将我的项目升级到 VS2012、Wix 3.6 和 .NET 4.5,每当我尝试使用命令行 (msbuild) 构建我的项目时,我都会遇到 2000 个错误:http://i.imgur.com/WSi7X.png

它在 Visual Studio 中构建得很好,但是当我从命令行调用 msbuild 时出现一堆错误,如下所示:http://pastie.org/5102451

【问题讨论】:

  • 在添加 VS2012 之前是否在命令行中工作?你用的是VS2010命令提示符,还是VS2012命令提示符?
  • 当我提到使用命令提示符时,我的意思是 cmd.exe 并使用我原始帖子(pastie.org 链接)中引用的命令。对不起,如果我误解了你。
  • 顺便说一句,是的,它确实在升级之前从命令行工作。

标签: c# visual-studio-2010 msbuild


【解决方案1】:

您应该确保在您的 msbuild 文件中使用正确的工具版本:

Force a tool version with MSBuild from inside the file?

情况可能并非如此,但我经常发现,当迁移到新的 .net 运行时并使用 msbuild 时,这会使团队中的其他人绊倒。

== 编辑 ==

抱歉,您只是在命令行上直接运行它,而不是通过某些构建脚本,因此上述解决方案可能不是 100% 相关的,但可能仍然是正在执行的 MSBuild 版本无法处理您的 . net 运行时,因为只需要 1 个项目构建失败,然后所有相关项目都会失败,从而产生 1000 多个随机错误,而实际上只有 1 个有意义的错误需要解决。

【讨论】:

  • 我尝试使用 /tv:4.0 运行不起作用的命令(pastie.org 链接),我得到了同样的错误。
  • 这可能是由于您的任何 CPU 类型在命令行上无效,在我在 IDE 中构建为 X86 之前,我遇到了很多问题,但它会尝试在基于底层操作系统的命令行,因此请尝试将其更改为 x86。还要确认在构建配置中所有这些项目都勾选了为此配置构建的框。
猜你喜欢
  • 1970-01-01
  • 2012-01-03
  • 2015-07-31
  • 2020-02-21
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 2015-06-25
相关资源
最近更新 更多