C# 命令行生成的MSBuild与devenv

C# 命令行生成的MSBuild与devenv,c#,c++,visual-studio-2010,msbuild,devenv,C#,C++,Visual Studio 2010,Msbuild,Devenv,我想知道:从命令行编译解决方案时使用msbuild和devenv有什么区别 注意到的一点是,msbuild确实生成了解决方案中不包含的依赖项目,而devenv则没有 还有别的吗?是否有一些特殊标志可以传递给msbuild以使其与devenv版本完全匹配 另外,我正在使用Visual Studio 2010 SP1,我在一个多层团队中经历了一个项目:开发人员、测试人员、部署人员。MSBuild是部署人员的主要工具:他们可以编译和重新编译,只需设置构建参数即可编辑MSBuild的xml配置文件,而无

我想知道:从命令行编译解决方案时使用msbuild和devenv有什么区别

注意到的一点是,msbuild确实生成了解决方案中不包含的依赖项目,而devenv则没有

还有别的吗?是否有一些特殊标志可以传递给msbuild以使其与devenv版本完全匹配


另外,我正在使用Visual Studio 2010 SP1,我在一个多层团队中经历了一个项目:开发人员、测试人员、部署人员。MSBuild是部署人员的主要工具:他们可以编译和重新编译,只需设置构建参数即可编辑MSBuild的xml配置文件,而无需打开devenv。事实上,他们经常在没有devenv的pre-prod环境中使用MSBuild

< P>是Apache基金会类似的工具。

有关更多信息,请查看此处:


MSBuild的主要优点是不需要安装Visual Studio

MSBuild的一个限制是它不支持生成Visual Studio安装项目(.vdproj


(你可以通过,但你仍然需要Visual Studio来解决这个问题。)

根据这一点,他们试图最小化差异,但现有的差异(即使用集成C#编译器而不是
csc.exe
或设置
buildingsidevisualstudio
属性)主要是为了优化生成的性能。

另一个主要区别是
msbuild
有一些
devenv
不存在的选项。据我所知,没有办法增加
devenv
的详细程度,但是可以通过以下选项增加
msbuild
的详细程度:

/v:diag

我遇到了这样一种情况,
devenv
在项目文件丢失时编写了一条错误消息,但仍然返回了0。相比之下,
msbuild
返回了一个非零值。我将生成文件改为使用
msbuild
,这样我们就不会忽略错误。

在所有devenv调用msbuild来执行生成之后!这个链接断了耶!不久前,他们在整个博客系统中游手好闲。我更新了一个版本的链接,我认为是什么。