【问题标题】:"Assembly Same Simple Name already been imported" error“程序集相同的简单名称已被导入”错误
【发布时间】:2012-12-09 16:27:31
【问题描述】:

这是一个 CLR 项目。我正在导入两个同名的 DLL 文件,quizz.dll(我将旧版本重命名为 legacyquizz.dll)并将新版本作为 quizz.dll 包含到旧转换器测试项目中。 (正在测试的旧转换器项目仅导入旧的quizz.dll)。

这是我得到的错误。 . .

具有相同简单名称“测验”的程序集, 版本=2.0.0.1,文化=中性, PublicKeyToken=null 已经被导入。

尝试删除其中一个引用或将其签名 并排启用。 C:\ 。 . . \Quizz.dll

它指向的路径是新版本 quizz.dll 的目的地。

我在 legacyquizz.dll 文件上使用了一个外部别名:

extern alias legacy;

在这种情况下,什么是“简单名称”?

【问题讨论】:

  • 尝试从其中一个测验项目的项目属性中重命名程序集名称。
  • 我不能这样做,它是灰色的。

标签: c# visual-studio dll namespaces clr


【解决方案1】:

如果您正在使用新的 .csproj 版本,则在添加对另一个解决方案项目的引用后,如果该引用已作为程序集依赖项存在(此引用可能已由 Visual Studio 自动添加),则可能会遇到此问题.

在解决方案资源管理器中,展开冲突项目,导航到 Dependencies->Assemblies 并检查是否存在对引发冲突的程序集的引用。如果存在,直接删除,冲突就解决了。

【讨论】:

    【解决方案2】:

    我的项目中也出现了这个问题。我已将我的 dll 路径更改为另一个文件夹,并将引用路径也更改为相同的(依赖层)。它会起作用的。不会发生重复。

    【讨论】:

      【解决方案3】:

      你有两个同名的程序集(不是文件名,程序集名)。有两种解决方案:

      1. 重命名项目属性中的一个程序集并重新编译。
      2. 在程序集上设置 Strong-Name Signing 以允许同一程序集的两个不同版本共存。

      【讨论】:

        【解决方案4】:

        您可以通过打开项目属性并选择程序集信息来查看简单名称:

        要对程序集进行签名,您需要选择“签名”选项卡并创建或选择签名密钥:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-22
          • 2023-01-10
          相关资源
          最近更新 更多