“程序集相同的简单名称已被导入”错误

问题描述 投票:0回答:5

这是一个 CLR 项目。我导入两个具有相同名称的 DLL 文件,

quizz.dll
(我将旧版本重命名为
legacyquizz.dll
),并将新版本作为
quizz.dll
包含到旧版转换器测试项目中。 (正在测试的遗留转换器项目仅导入旧的
quizz.dll
)。

这是我遇到的错误。 。 .

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

尝试删除其中一项参考资料或将其签名 并排启用。 C:\ 。 。 。 \测验.dll

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

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

extern alias legacy;

在此上下文中什么是“简单名称”?

c# visual-studio dll namespaces clr
5个回答
10
投票

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

enter image description here

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

enter image description here


4
投票

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

在解决方案资源管理器中,展开冲突的项目,导航到依赖项->程序集,然后检查是否存在对引发冲突的程序集的现有引用。如果存在,直接删除即可解决冲突。


3
投票

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

  1. 从项目属性中重命名其中一个程序集并重新编译。
  2. 在程序集上设置强名称签名,以允许同一程序集的两个不同版本共存。

0
投票

对我来说,删除 bin 文件夹并构建工作。如果 bin 文件夹中存在与正在重建的版本并排的旧版本依赖项,则单独重建并不能解决问题。


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.