有没有办法直接编译.vbproj或.csproj项目文件,就像Visual Studio一样?
在Visual Studio中编译时,“输出”窗口显示对编译器的实际调用,通常如下所示:
vbc.exe [一堆选项] [looooong .vb文件列表]
我想以编程方式调用“某事”来获取.vbproj文件并执行Visual Studio所做的任何操作来生成这个长命令行。我知道我可以自己解析.vbproj并生成该命令行,但我宁愿自己保存所有的逆向工程和反复试验......
有没有工具可以做到这一点?我宁愿能够在没有安装Visual Studio的情况下在机器上完成它。但是,如果有一种方法可以调用带有一些参数的Visual Studio来实现它,那么那也没关系。
我简要地看了一下MSBuild,看起来它的工作原理是我必须特别制作的.proj项目文件,并且我每次将文件添加到.vbproj文件时都需要更新。 (我确实看了简短地,所以我很可能错过了一些重要的事情)
非常感谢任何帮助
答案 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,则无需使用命令行。