【问题标题】:Is there a tool to compile "selective" assemblies containing only certain types?是否有编译仅包含某些类型的“选择性”程序集的工具?
【发布时间】:2011-05-05 21:33:37
【问题描述】:

假设我有一个包含AZ 类型的大型项目。

如果出于某种原因,我想打包并分发只需键入A 给某些客户怎么办?

显然我不能无条件地将A 编译成它自己的DLL;它可能取决于我项目中的其他一些类型。但它不太可能取决于我项目中的每个类型。

我所设想的是一些工具,它可以检查 A,识别其依赖关系,并以某种方式编译一个最小 DLL,其中仅包含我想要的类型 (A) 所需的类型,仅此而已。

例如,如果A 依赖于BC 提供的功能,而B 依赖于D,但CD 没有额外的依赖关系(可能除了@ 987654334@、B 或彼此),此工具将采用 AD 并将仅这些类型编译成 DLL 供我按照我认为合适的方式使用。 p>

是否可以通过 Visual Studio 获得此类功能?如果没有,是否有一些插件或外部工具能够做到这一点?顺便说一句,我问的问题是否合理,或者您认为这样的事情是个坏主意?

显然,我总是可以手动执行此操作;看起来这将是很多工作(如果一开始是个坏主意,那么就忘了它)。

【问题讨论】:

    标签: .net compiler-construction dependencies .net-assembly


    【解决方案1】:

    这听起来像是一个制作文件的理想问题。我不知道 .NET 位将如何发挥作用,但对于经典 C 模型,您可以执行以下操作:

    clean :
        del *.obj
    
    libA.lib : A.obj
        makelib *.obj
    
    libB.lib : B.obj
        makelib *.obj
    
    ...
    
    A.obj : B.obj C.obj
        compile A.cs
    
    B.obj : C.obj D.obj
        compile B.cs
    
    C.obj : 
        compile C.cs
    
    D.obj : 
        compile D.cs
    
    ...
    

    运行make clean A,你应该得到A所需的一切,仅此而已。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2013-05-01
      • 2010-11-30
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      相关资源
      最近更新 更多