当前位置:  开发笔记 > 编程语言 > 正文

从csproj文件构建依赖关系树

如何解决《从csproj文件构建依赖关系树》经验,为你挑选了1个好方法。

我目前正在将msbuild用于600多个项目的解决方案。

想象一下,我更改了10个项目使用的1个库的代码。与其提供全部600个项目供msbuild使用,而不是让其编译所有项目并找出依赖项,不如将其提供给msbuild。我想知道是否可以使用一个程序或库来分析所有600个项目的依赖关系,并只允许我编译11个必需的项目。

换句话说,给定要扫描的所有600个项目的输入,而BaseLibrary.csproj作为已被修改参数的项目,仅提供我需要编译为输出的11个项目。

我在编写自定义任务方面经验丰富,如果有的话,我宁愿使用第三方库进行依赖关系分析。

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

我能想到的唯一用例是不起作用的,是我提到的那种情况,其中更改了基础库,而系统也不知道依赖该库的所有项目。



1> 小智..:

您是否尝试过.NET程序集依赖性分析器?

它是开源的,您可能需要点脚本中的图形输出。该站点的一个示例:

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"];
 } 

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

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有