MSBuild文件与SLN和项目文件

MSBuild文件与SLN和项目文件,msbuild,Msbuild,我刚开始研究MSBuild,并开始了解整个想法。我已经和Hudson一起安装了一个CI服务器,我想知道我应该如何处理构建脚本和sln/proj文件 例如,我有一个现有的解决方案,其中有10个项目(一个是网站,另一个是web部署项目,还有安装MSI项目)。处理这个建筑的好方法是什么 我是否应该将msbuild指向sln文件 我是否应该获取SLN文件中的内容并创建另一个,以便它指向不同的项目文件 我应该从所有sln和proj文件中获取代码并创建一个自定义构建脚本吗 如果我做了最后两个,我是否需要担心

我刚开始研究MSBuild,并开始了解整个想法。我已经和Hudson一起安装了一个CI服务器,我想知道我应该如何处理构建脚本和sln/proj文件

例如,我有一个现有的解决方案,其中有10个项目(一个是网站,另一个是web部署项目,还有安装MSI项目)。处理这个建筑的好方法是什么

  • 我是否应该将msbuild指向sln文件
  • 我是否应该获取SLN文件中的内容并创建另一个,以便它指向不同的项目文件
  • 我应该从所有sln和proj文件中获取代码并创建一个自定义构建脚本吗
  • 如果我做了最后两个,我是否需要担心维护两组脚本,即确保我的脚本与sln/proj文件一样是最新的


    在我的本地盒子上开发时,我如何处理构建它?我是否只需按住CTRL键SHIFT键B来构建它,然后只对CI服务器/部署构建使用构建脚本?

    我一直在谷歌上搜索并找到Jeff关于“F5”的帖子:

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

    SCOTT HANSELMAN()提供了一个关于在VS中创建快捷方式以运行构建脚本的好链接

    我假设您仍然需要按F5进行调试,并且在大多数情况下无法避免这种情况(asp.net可以连接到进程,因此您不必继续这样做)

    我将首先查看项目文件并从中构建脚本,然后进行自定义以适应之后的情况


    希望这可能有助于其他人在将来环顾四周。

    我倾向于这样的方法,每个项目都有自己的构建文件(无论是msbuild还是NAnt等),然后有一个主构建来构建所有项目。这样,您就可以专注于项目(例如在修复bug时),在签入之前运行主构建,再加上在构建机器上运行的master.build

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

    那只是我对事情的看法。你可能会发现我在网上的帖子很有用


    祝你好运

    创建运行MSBuild任务的生成脚本。将MSbuild任务指向您的解决方案或项目。然后编译源代码就变得简单了,这只是另一项任务。你的构建脚本,如果可以的话,可以专注于更大更好的事情

    CI服务器将运行生成脚本。要在本地计算机上运行生成,请在项目中包含.bat文件。.bat文件调用MSBuild来运行构建脚本,并为生成日志文件等操作设置命令行选项。然后,您可以双击bat文件并查看日志文件以查看结果。以下是一个例子:

    %WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe build.xml /fileLogger /fileLoggerParameters:LogFile=MSBuildLog.txt