当前位置 : 主页 > 编程语言 > c语言 >

c# – 从csproj文件构建依赖关系树

来源:互联网 收集:自由互联 发布时间:2021-06-25
我目前正在使用msbuild来解决600多个项目. 想象一下,我更改了10个项目使用的1个库的代码.而不是将所有600个项目提供给msbuild,让它编译所有这些项目并找出依赖项.我想知道是否有一个我
我目前正在使用msbuild来解决600多个项目.

想象一下,我更改了10个项目使用的1个库的代码.而不是将所有600个项目提供给msbuild,让它编译所有这些项目并找出依赖项.我想知道是否有一个我可以使用的程序或库来分析所有600个项目的依赖项,并允许我只编译必要的11个项目.

换句话说,考虑到要扫描的所有600个项目的输入,以及BaseLibrary.csproj作为已修改参数的项目,仅提供我需要编译为输出的11个项目.

我在编写自定义任务方面经验丰富,我只想使用第三方库进行依赖性分析,如果已有的那样.

我公司每3-4个月对生产进行一次增量发布.作为一个实验,我编写了一个自定义任务,查看以前版本的“Subversion标记”,并评估自那时以来已更改的所有已编译文件,并将它们映射到项目.

我能想到的唯一不能使用的用例是我提到的基础库更改而系统不知道所有依赖它的项目.

你试过 .NET assembly dependency analyser吗?

它是开源的,dot script中的图形输出可能就是您所需要的.该网站的一个例子:

digraph G { 
      size="100,69"
      center=""
      ratio=All
      node[width=.25,hight=.375,fontsize=12,color=lightblue2,style=filled]
      1 -> 9;
      1 -> 11;
      9 -> 10;
      11 -> 10;
      1 [label="Drew.Controls.Map"];
      9 [label="Drew.Types"];
      10 [label="nunit.framework"];
      11 [label="Drew.Util"];
 }

使用项目列表和此脚本输出,您可以创建编译列表.

网友评论