14

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

这是我得到的错误。. .

已导入具有相同简单名称 'Quizz, Version=2.0.0.1, Culture=neutral, PublicKeyToken=null 的程序集。

尝试删除其中一个引用或对其进行签名以并排启用。C:\ 。. . \测验.dll

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

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

extern alias legacy;

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

4

4 回答 4

7

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

在此处输入图像描述

要签署程序集,您需要选择签名选项卡并创建或选择签名密钥:

在此处输入图像描述

于 2012-12-22T08:33:27.893 回答
3

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

  1. 重命名项目属性中的一个程序集并重新编译。
  2. 在程序集上设置强名称签名,以允许同一程序集的两个不同版本共存。
于 2012-12-22T08:34:14.647 回答
1

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

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

于 2019-06-27T17:01:28.863 回答
-2

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

于 2015-09-19T05:01:47.580 回答