gpt4 book ai didi

.net - 引用的程序集复制规则

转载 作者:行者123 更新时间:2023-12-03 14:42:39 25 4
gpt4 key购买 nike

VS(msbuild?)在解决方案构建期间遵循哪些规则?在哪些情况下,它将间接引用的程序集复制到输出文件夹,而在哪些情况下不会?

最佳答案

我刚刚进行了一些实验,看起来任何间接引用的程序集都将被复制,该程序集的类型由另一个程序集中的代码直接引用。如果代码中没有任何内容,则不会。这是我的示例场景:

  • MainProgram:直接引用 DirectAssembly 的控制台应用程序。主要代码:
    var foo = new DirectAssembly.SampleClass();
  • DirectAssembly:直接引用 IndirectAssembly 的类库。包含 SampleClass :
    public class SampleClass
    {
    // Comment out this line to change the behaviour...
    IndirectAssembly.IndirectClass neverUsed = null;

    public SampleClass()
    {
    object x = Activator.CreateInstance("IndirectAssembly",
    "IndirectAssembly.IndirectClass");

    }
    }
  • IndirectAssembly:包含一个公共(public)类 IndirectClass使用公共(public)无参数构造函数

  • 如上所述,它之所以有效,是因为 IndirectAssembly 被复制到 MainProgram 的输出文件夹中。如果您注释掉 SampleClass 中指示的行,则不会复制 IndirectAssembly(即使它仍然是一个引用),并且代码将在执行时失败。

    我并不是说这些都是规则,但它们至少是一个开始......

    关于.net - 引用的程序集复制规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215004/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com