从批处理文件构建 .net 解决方案

17
我有一个解决方案文件,其中包含15个项目,使用了一些第三方dll引用。我希望能够从批处理文件中构建解决方案。最好的方法是什么?
谢谢

你的目标是构建自动化吗?如果是,那么有很多工具可以促进此过程(比起创建 .bat 文件更为强大)。 - Brandon Boone
@BrandonBoone 有什么最好的吗? - IsmailS
@iSid - 我已经在持续构建自动化方面使用 Cruise Control 取得了一些成功。它可以与您的源代码管理库集成,并在您提交更改时重新构建您的项目。我相信它还可以运行您的单元测试。 - Brandon Boone
3个回答

30
运行 msbuild - 例如:
msbuild MySolution.sln /p:Configuration=Release /p:Platform="Any CPU"

在这行代码之后,我该如何运行它? 上述代码并没有由我创建一个exe文件。 - YTG
@YTG:如果任何一个项目被配置为构建可执行文件,它应该可以实现。 (当然,现在我通常建议使用dotnet build - 请记住,这个答案已经超过12年了。)听起来你可能需要写一个新问题,并提供更多的上下文。 - Jon Skeet
已经配置好了。我的csprog文件中有<OutputType>Exe</OutputType>。我正在查看bin文件夹中的所有文件夹,但是找不到exe文件。 - YTG
@YTG:请再次提出一个新问题,而不是试图在一篇12年前的帖子的评论中提问... - Jon Skeet

20

最简单的方法之一是使用解决方案文件作为输入来执行msbuild:

@echo off
call %windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe path\to\solution.sln

如果在Visual Studio命令提示符中执行此操作,则可以跳过对msbuild.exe的路径。


3

开始的方法之一是在Visual Studio中打开项目,选择“生成”|“重新生成解决方案”。然后转到“查看”|“输出”。在输出窗口中,在“显示选项”下拉菜单中选择“构建”。这将显示Visual Studio用于构建项目的命令。您可以将它们粘贴到批处理文件中,并按需要进行读取或修改。

如果您想维护应用程序的Debug和Release版本,则需要选择正确的配置,然后为每个版本执行上述步骤。


有人可以解释一下为什么要点踩吗?是因为信息不正确吗?还是没有回答问题? - Jeffrey L Whitledge
我认为这是因为他问如何从批处理文件构建解决方案,而你的解决方案使用Visual Studio执行构建,并没有回答他的问题。 - Tom Miller
@TomMiller - 我只是使用Visual Studio作为一种简单的方式来生成批处理命令。我并没有告诉他如何在VS中构建它。 - Jeffrey L Whitledge
1
默认情况下,它仅显示命令的输出,而不是命令本身(最小化)。您可以进入“工具|选项”,然后选择“项目和解决方案”,再选择“生成和运行”。在那里,您可以更改输出详细程度。 - Engineer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接