C#相同类型和命名空间在另一个引用的不同合并程序集中

时间:2014-03-19 09:05:53

标签: c# types namespaces ilmerge

我有一个“共同”项目。我们称之为:MyProject.Common 该项目有一个命名空间Serials.Licensing,它包含一个带有静态变量的许可类。

所以这将是共同项目的结构:

MyProject.Common (dll)
| -> Serials.Licensing (namespace)
   | -> License (class with static variables) 

使用IlMerge,我将这个程序集合并到两个不同的程序集中(A.dll,B.dll)。这将是2个使用IlMerge创建的程序集的结果:

   assemblyA (dll)
    | -> Serials.Licensing (namespace)
       | -> License (class with static variables)

    | class "classA" using the License class of this dll

并且

   assemblyB (dll)
    | -> Serials.Licensing (namespace)
       | -> License (class with static variables)

    | class "classB" using the License class of this dll

如您所见,两个程序集都有类(classA,classB),它们使用在自己的程序集中合并的License类

如果在一个新项目(projectC)中,我引用了dll A和dll B.在类License中是否会出现与静态变量有关的问题(如冲突)?

我很困惑,因为我不知道dll A和dll B是否都有自己的“上下文”,或者是否会出现问题,因为命名空间和类型与License类的静态变量相同。

1 个答案:

答案 0 :(得分:0)

如果您尝试访问该类型中的某些内容,则会收到编译错误,告知您,A.dll和B.dll中都存在类型许可证。所以这对你不起作用。 如果你从不访问该类型,项目应该编译得很好。