命名空间类冲突

时间:2012-01-04 09:30:35

标签: c# namespaces aliasing

首先,我知道这是因为库不好,但我没有代码让他们解决这个问题。

XXX.dll在全局命名空间中包含类Util。 Util.dll具有命名空间Util。

当我包含两个.dll时,我无法使用Util命名空间(错误1'.. \ Util.dll'中的命名空间'Util'与'\'\ _XDX.dll'中的'Util'类型冲突。)< / p>

因为两者都在全局命名空间中,所以我看不到别名如何解决这个问题。

最佳解决方案是什么?现在我知道我可以创建另一个.proj,它不包括我需要的.dll和包装类。但这不容易做到;(

5 个答案:

答案 0 :(得分:11)

您应该可以使用extern aliases - 它们允许您有效地限定您所指的程序集的引用。 Anson Horton为他们提供了很好的walkthrough

答案 1 :(得分:9)

是的,有一个解决方案可以解决您的问题。转到引用两个程序集的项目中的References子文件夹。对于使用全局Util右键单击的程序集,然后按Properties。在Aliases属性中,您应该global。例如将其更改为DLL1或其他。现在,如果您想在文件中使用全局Util,请在using语句之前添加以下内容:

extern alias DLL;

现在,您可以使用Util

之类的全球DLL.Util

答案 2 :(得分:1)

您需要使用“extern别名”语言功能。查看Anson Horton撰写的this博客文章。

(或者只看Jon的回答。)

答案 3 :(得分:1)

upgrading a DevExpress project

时,此错误也可能会显示
  1. 关闭=RANGENAME(AB23)
  2. 通过清除以下文件夹清除Visual Studio目录:

    • Temporary ASP.NET Files
    • C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\
    • 重新启动C:\Users\[your_user_name]\AppData\Local\Temp\Temporary ASP.NET Files\服务(开始菜单\设置\控制面板\管理工具\服务)。
  3. 清除项目的 Bin Obj 文件夹,并在必要时部署新程序集;

  4. 重建您的应用

答案 4 :(得分:0)

修复此问题的另一种方法...文件夹中的类文件将从文件夹名称继承其命名空间。确保您添加的任何文件夹在同一项目的根目录中没有相应的文件名。