1

我开发了一个大型 MSBuild 项目来构建我们解决方案的一部分。有很多事情正在进行——XML 解析/替换、Windows 服务、远程复制等。因此,尽管我尽最大努力在注释中添加装饰,但文件变得非常难以管理。

作为一个傻瓜,我将主要功能块分解为单独的文件,如“XML.targets”、“Services.targets”等,并将它们导入主“Build.proj”。构建仍然有效,我立即发现它更易于管理。

但是,我读到的关于 MSBuild 导入功能的所有信息都是它应该用于导入可重用的目标,即那些可以被 -any- MSBuild 项目使用而无需任何修改的目标。我在这里创建的单独项目是相反的——特定于一个项目,如果与其他任何项目一起使用,除非经过修改,否则默认情况下会中断。

所以我想我要问的是,即使我可以......我应该吗?将 Import 严格用于组织大型项目是否存在内在危险?有一个更好的方法吗?

谢谢

4

1 回答 1

1

不,没有固有的危险。我认为将大型项目拆分为特定于特定操作的多个 .targets 文件是一个不错的决定,因为它降低了整体复杂性。创建可重用目标的想法意味着它们应该尽可能少地依赖其他部分。以此类推,您可以将单独的 .targets 文件视为类。它们的耦合越少 - 越好。因为修改一个目标文件不太可能破坏整个过程。您可以放心,将您的目标文件绘制为点,以您的主要项目为中心,并绘制它们之间的所有连接。假设一个目标文件覆盖另一个目标文件或期望它的某些属性或以其他方式依赖于它,那么就有一个连接。在完美的场景中,你会得到像星星一样的东西。
简而言之:如果它降低了复杂性,你应该这样做。

于 2010-11-29T22:51:17.907 回答