26

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

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

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

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

有没有工具可以做到这一点?我宁愿能够在没有安装 Visual Studio 的机器上完成它。但是,如果有一种方法可以使用一些参数调用 Visual Studio 来执行此操作,那也可以。

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

任何帮助将不胜感激

4

6 回答 6

48

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

msbuild /property:Configuration=Release MyFile.vbproj
于 2008-11-05T19:39:43.837 回答
5

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

于 2008-11-05T19:39:33.633 回答
2

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

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

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

于 2008-11-05T19:42:46.373 回答
2

只是让您知道 .vbproj 和 .csproj 文件是 MSBuild。因此,您阅读的所有内容都可以直接应用于这些文件。

赛义德·易卜拉欣·哈希米

我的书:Microsoft Build Engine 内部:使用 MSBuild 和 Team Foundation Build

于 2009-05-22T04:48:50.210 回答
1

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

msbuild wpfapp1.sln /p:BuildProjectReferences=true

MSbuild 通常位于:

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

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

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

于 2017-09-10T14:29:48.013 回答
-1

.vbproj 文件的顶部是一个 . 将此行添加到属性组以抑制 VB 运行时:

<NoVBRuntimeReference>On</NoVBRuntimeReference>

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

于 2013-09-16T04:13:01.397 回答