2011-11-28 52 views
2

我们的解决方案已经包含了大量的项目,而且我们的MSBuild文件正在变成一个巨大的,不稳定的尖括号,变得如此之大以至于我开始害怕触摸它。但是,我注意到我们的大部分项目分为两组。用MSBuild构建大量类似的项目

有一些Web项目,它们具有.csproj扩展名,并使用Web部署项目构建和部署,以便将它们转储到目录中。还有一个配置转换过程。基本上,要部署Web项目,只需要项目名称,输出目录和配置转换。

同样,我们的服务应用程序数量将不断增加,这些应用程序将位于TopShelf下。这些基本上是从.csproj文件构建的dll。像上面的网站一样,他们进行配置转换,但他们被复制到输出目录,而不是通过web部署步骤。

我想到,如果我可以简单地为MSBuild项目提供几个文本文件(一个用于网页,另一个用于服务),那么MSBuild可以用来动态编译所有的文本文件各种项目。我在想,如果我可以给它提供一个逗号分隔的项目列表,输出位置和配置替换文件,那么可能有一种方法可以让msbuild读取它们,对它们进行迭代,然后转储出它们的项目应该去。

但是,我的MSBuild-fu很弱。我怎么才能开始呢?

+0

也许[我对一个类似问题的回答](http://stackoverflow.com/a/3071804/205233)可以给你一个良好的开端。基本上我的方法是将所有处理打包到核心MSBuild脚本中,并将所有项目特定信息打包成可在需要时导入的目标脚本。 – Filburt

+0

就你而言,你需要2个核心脚本(web +服务)。你可以从你当前的(单片)MSBuild脚本中添加一个样本提取? – Filburt

回答

0

您可以从here开始,这是part 2。 对于配置文件,我使用XmlPreprocess tool进行配置文件操作。它在多个环境中使用一个映射文件。您可以通过Excel编辑映射文件。这是非常容易使用。