【问题标题】:C# same type and namespace in different merged assembly referenced by another oneC# 相同类型和命名空间在另一个被另一个引用的不同合并程序集中
【发布时间】:2014-04-25 09:34:43
【问题描述】:

我有一个“普通”项目。我们称之为:MyProject.Common 该项目有一个命名空间 Serials.Licensing,其中包含一个类 License带有静态变量

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

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

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

   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 类的静态变量相同而出现问题。

【问题讨论】:

  • 许可证的范围是什么?如果你把它做成内部的,那有帮助吗?

标签: c# types namespaces ilmerge


【解决方案1】:

如果您尝试访问类型中的某些内容,您将收到一个编译错误,告诉您许可类型存在于 A.dll 和 B.dll 中。所以这对你不起作用。 如果您从不访问该类型,则项目应该可以正常编译。

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 2016-02-06
    • 2011-03-03
    • 2012-09-12
    • 2014-12-10
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多