2010-11-24 176 views
1

我开发了一个大的MSBuild项目来构建我们解决方案的一部分。有很多事情正在进行 - XML解析/替换,Windows服务,远程复制等。因此,尽管我尽了最大的努力在评论中添加修饰,但文件的管理变得非常困难。作为一个整体,我将主要的功能块分成单独的文件,如“XML.targets”,“Services.targets”等,并将它们导入到主要的“Build.proj”中。构建仍然有效,我立即发现它更易于管理。使用MSBuild导入模块化项目

但是,我读过的有关MSBuild导入功能的信息是,它应该用于导入可重复使用的目标,即不需要任何修改就可以被-any-MSBuild项目使用的目标。我在这里创建的独立项目与一个项目相反 - 如果不使用其他任何项目,则默认情况下会中断。

所以我猜我问的是,即使我可以 ... 应该我?为了组织大型项目,严格使用导入是否存在内在危险?有一个更好的方法吗?

谢谢

回答

1

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