在没有Visual Studio的情况下编译.vbproj或.csproj项目文件

时间:2008-11-05 19:37:04

标签: visual-studio compilation csproj vb.net

有没有办法直接编译.vbproj或.csproj项目文件,就像Visual Studio一样?

在Visual Studio中编译时,“输出”窗口显示对编译器的实际调用,通常如下所示:

vbc.exe [一堆选项] [looooong .vb文件列表]

我想以编程方式调用“某事”来获取.vbproj文件并执行Visual Studio所做的任何操作来生成这个长命令行。我知道我可以自己解析.vbproj并生成该命令行,但我宁愿自己保存所有的逆向工程和反复试验......

有没有工具可以做到这一点?我宁愿能够在没有安装Visual Studio的情况下在机器上完成它。但是,如果有一种方法可以调用带有一些参数的Visual Studio来实现它,那么那也没关系。

我简要地看了一下MSBuild,看起来它的工作原理是我必须特别制作的.proj项目文件,并且我每次将文件添加到.vbproj文件时都需要更新。 (我确实看了简短地,所以我很可能错过了一些重要的事情)

非常感谢任何帮助

6 个答案:

答案 0 :(得分:43)

MSBuild是最简单的方法。例如:

msbuild /property:Configuration=Release MyFile.vbproj

答案 1 :(得分:4)

MSBuild还可以获取您的解决方案文件并使用它来进行编译。

答案 2 :(得分:2)

您可以使用MSBUILD或CSC。正如您所提到的,MSBuild确实使用了您的项目和解决方案文件。 CSC将编译特定目录树中的特定文件或所有文件。

您还应该考虑使用NAnt和/或CruiseControl.net自动化您的构建。

此外,这里有一个关于如何使用CSC在没有visual studio的情况下编译代码的示例。 http://blog.slickedit.com/?p=163

答案 3 :(得分:2)

您知道.vbproj和.csproj文件是MSBuild。所以你读过的所有内容都可以直接应用于这些文件。

Sayed Ibrahim Hashimi

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

答案 4 :(得分:1)

在项目解决方案文件夹中:

msbuild wpfapp1.sln /p:BuildProjectReferences=true

MSbuild通常位于:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

(或类似的东西,取决于版本)

csc.exe编译文件,msbuild编译项目和解决方案

答案 5 :(得分:-1)

.vbproj文件的顶部是。将此行添加到属性组以禁止VB运行时:

<NoVBRuntimeReference>On</NoVBRuntimeReference>

MSBuild完成其余的工作。如果您有IDE,则无需使用命令行。