在 devenv 和 msbuild 中使用 CruiseControl.net 时输出二进制文件的任何差异

Posted

技术标签:

【中文标题】在 devenv 和 msbuild 中使用 CruiseControl.net 时输出二进制文件的任何差异【英文标题】:Any difference in output binaries when using CruiseControl.net in devenv and msbuild 【发布时间】:2011-05-05 05:58:50 【问题描述】:

我正在使用 msbuild 来构建我的 C# VS 解决方案。我的第三方控件出现错误,需要用户交互才能构建。如果我将 Cruisecontrol 配置更改为使用 devenv 而不是 msbuild,我可能能够修复它。

我的问题是:如果我迁移到 devenv,输出二进制文件有什么不同吗? msbuild 和 devenv 是否都生成相同的二进制文件?用同样的优化?

【问题讨论】:

【参考方案1】:

构建过程的执行方式明显不同,但最终,任何一种方法都会调用具有相同选项的相同 CSC C Sharp 编译器(在内存或 EXE 中)。当然,如果事情没有按照完全相同的顺序完成,任何事情都可能出错,尤其是在您使用并行构建时,但如果构建可靠地使用 DevEnv 完成并且可靠地完成了 MSBuild,那么您可能可以接受它们为等效的。

【讨论】:

【参考方案2】:

没有区别,但我不建议你移动,因为 CCNet 中的 devenv.exe 是独立运行的,这样也无法进行用户交互。但是,devenv.exe 正在消耗更多的内存和用户资源,而 msbuild 更快并且与 CCNet 的集成更好。

我认为你应该探索这个控件的文档,可能它有一些必须初始化以允许跳过用户交互的构建变量?

【讨论】:

以上是关于在 devenv 和 msbuild 中使用 CruiseControl.net 时输出二进制文件的任何差异的主要内容,如果未能解决你的问题,请参考以下文章

使用devenv/MSBuild在命令行编译sln或csproj

使用 Msbuild 和 devenv 在项目解决方案下构建特定的 Visual Studio 项目

是否可以从 csproj 文件中知道是使用 devenv 还是 msbuild 来运行它?

buildbot C++ 在 Windows 上构建:使用 devenv.com、vcbuild.exe 还是 MSBuild.exe?

VS2010:如何运行 devenv 以不并行化构建

devenv CruiseControl 的记录器