命名空间类冲突

本文关键字:冲突 命名空间 | 更新日期: 2023-09-27 18:19:28

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

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

当我同时包含两个.dll时,我无法使用Util命名空间(错误1"..''Util.dll"中的命名空间"Util"与"''XXX.dll"中类型"Util"冲突)。

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

最好的解决方案是什么?现在我知道我可以制作另一个.proj,它不包括我需要的.dlls和wrap类。但要做到这一点并不容易;(

命名空间类冲突

您应该能够为此使用外部别名-它们允许您有效地限定所指程序集的引用。安森·霍顿为他们做了一个很好的演练。

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

extern alias DLL;

现在您可以像使用DLL.Util 一样使用全局Util

您将需要使用"extern alias"语言功能。看看安森·霍顿的博客。

(或者看看Jon的回答。)

升级DevExpress项目时也可能出现此错误

  1. 关闭Visual Studio
  2. 通过清除以下文件夹来清除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'
    • 重新启动World Wide Web Publishing服务("开始"菜单''"设置"''"控制面板"''"管理工具"''"服务")
  3. 清除项目的BinObj文件夹,并在必要时部署新程序集;

  4. 重新生成应用程序

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