C# 命名空间类冲突

C# 命名空间类冲突,c#,namespaces,aliasing,C#,Namespaces,Aliasing,首先,我知道这是因为糟糕的库,但我没有代码让它们修复这个问题 三十、 dll在全局命名空间中包含类Util。 Util.dll具有命名空间Util 当我同时包含这两个.dll时,我不能使用Util命名空间(错误1“..\Util.dll”中的命名空间“Util”与“\XXX.dll”中的类型“Util”冲突) 因为两者都在全局名称空间中,所以我不知道别名如何解决这个问题 什么是最好的解决方案?现在我知道我可以制作另一个.proj,它不会同时包含我需要的.dll和wrap类。但这并不容易做到;(您

首先,我知道这是因为糟糕的库,但我没有代码让它们修复这个问题

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

当我同时包含这两个.dll时,我不能使用Util命名空间(错误1“..\Util.dll”中的命名空间“Util”与“\XXX.dll”中的类型“Util”冲突)

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


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

您应该能够使用它们-它们允许您有效地限定引用您所指的程序集。Anson Horton对它们有很好的解释。

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

外部别名DLL;

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

您需要使用“外部别名”语言功能。请查看Anson Horton的博客条目


(或者看看Jon的答案。)

  • 关闭Visual Studio
  • 通过清除以下文件夹,清除ASP.NET临时文件
  • 目录:

    • C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NET临时文件\
    • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ASP.NET临时文件\
    • C:\Windows\Microsoft.NET\Framework\v4.0.30319\ASP.NET临时文件\
    • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NET临时文件\
    • C:\Users\[您的\u用户名]\AppData\Local\Temp\Temp\Temporary ASP.NET文件\
    • 重新启动万维网发布服务(开始菜单\设置\控制面板\管理工具\服务)
  • 清除项目的BinObj文件夹,必要时部署新组件

  • 重新生成应用程序

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

    这不是生成错误,这是一个名称冲突,无法通过重建解决。@watbywbarif-我理解您的观点,但有时s此错误是由于未删除的
    .dll
    s的旧版本而引发的。我只是简单介绍了该场景。我今天测试了这些步骤本身是否存在相同的错误这是一个问题,我这样做是为了清除类似的问题。@Greg我建议您将此作为建议添加到我编写的答案中