MSBuild文件与SLN和项目文件

4

我刚开始学习MSBuild并试图理解整个概念。我已经在Hudson上设置了一个CI服务器,并想知道如何“应该”处理构建脚本和sln / proj文件。

例如,我有一个现有的解决方案,其中包含10个项目(其中一个是网站,另一个是Web部署项目和安装程序MSI项目)。处理它的好方法是什么?

  1. 我只需将msbuild指向sln文件吗?
  2. 我应该取出SLN文件中的内容并创建另一个文件,以便它指向不同的proj文件吗?
  3. 我应该从所有sln和proj文件中获取代码并创建一个自定义构建脚本吗?

如果我选择最后两个选项之一,我是否必须担心维护两套脚本,即确保我的脚本与sln / proj文件一样新?

还有,当我在本地开发时,如何处理构建它?我只需使用CTRL SHIFT B进行构建,然后仅将构建脚本用于CI服务器/部署构建吗?

3个回答

3
创建一个构建脚本,运行MSBuild任务。将MSbuild任务指向您的解决方案或项目。编译源代码变得简单,并且只是另一个任务。您的构建脚本可以专注于更重要的事情。
您的CI服务器将运行您的构建脚本。要在本地计算机上运行构建,请在您的项目中包含一个.bat文件。.bat文件调用MSBuild来运行您的构建脚本,并为生成日志文件等命令行选项设置命令行选项。然后,您可以双击bat文件并查看日志文件以查看结果。以下是示例:
%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe build.xml /fileLogger /fileLoggerParameters:LogFile=MSBuildLog.txt

1

我一直在谷歌搜索,找到了杰夫关于“F5”的帖子:

http://blog.codinghorror.com/the-f5-key-is-not-a-build-process/

从这篇文章和其他几篇文章中,我决定最好创建自己的MSBuild脚本,与SLN和项目文件分开。

SCOTT HANSELMAN(Scott's Blog)有一个很好的链接,介绍如何在VS中创建快捷方式来运行构建脚本。关于并行构建的博客文章

我假设你仍然需要按F5进行调试,大多数情况下无法避免这种情况(asp.net可以附加到进程,因此您不必一直这样做)。

我将从项目文件开始构建脚本,然后根据需要进行自定义。

希望这可以帮助未来寻找相关信息的其他人。


1

我倾向于采用每个项目都有自己的构建文件(无论是msbuild还是NAnt等),然后有一个主构建文件来构建所有项目。这样你就可以专注于项目(例如在修复错误时),并在检入之前运行主构建,而主构建是在构建机器上运行的。

您仍然可以在VS中正常构建和调试,构建脚本是单独的。构建脚本仅用于构建框和在检入之前运行。

这只是我的看法。您可能会发现我在getting started with CI上发布的内容有用...

祝你好运!


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