如何以编程方式自动比较Visual Studio解决方案文件?

时间:2014-10-30 14:12:23

标签: c# visual-studio msbuild envdte

我们有一个包含多个解决方案的解决方案文件,因为我们有很多开发人员正在处理我们应用程序的各个部分。

开发人员通常会更新各个解决方案,但他们不会更新主解决方案文件。我希望在我们的日常构建过程中有一个自动化过程,将主要解决方案与每个解决方案进行比较,以便所有内容都能正确构建。

我一直在关注MSBUILD框架以及DTE / DTE2对象模型作为自动化选项。我需要深入到解决方案文件的项目级别,以确保所有项目都存在于每个子解决方案中的主解决方案文件中。

我一直在玩这个网站上的例子,有人问这个问题: Is it possibile to use the MSBUILD API to parse solution and project configuration?

我在使用DTE / DTE2自动化时遇到的一个问题是,当在控制台应用程序中执行代码时,我会弹出一个控制台窗口,以及Windows系统托盘中的“新扩展”通知可以下载“。

还有其他方法可以自动进行比较吗?

1 个答案:

答案 0 :(得分:0)

有同样的问题。我使用了SLNTools,并在其中添加了一些功能,将多个解决方案合并为一个Combined.sln

注意:请注意这种方式,解决方案可能会开始具有奇怪的依赖关系,并且通常它不是分区大型项目的非常好的方法。考虑将大项目分解为多个独立项目,并在它们之间使用明确的API(我们现在正在以高成本实现这一目标)。