编译器错误 CS1703

已导入具有相同的简单名称“name”的程序集。 尝试删除某个引用,或者为引用签名,从而启用并行。

编译器删除具有相同的路径和文件名的引用,但很可能相同的文件存在于两个位置中,或者你忘记更改版本号。 此错误指出两个引用具有相同的程序集标识,因此编译器无法在元数据中区分它们。 请删除其中一个冗余的引用,或通过某种方法(例如递增程序集版本号)使引用唯一。

下面的代码生成错误 CS1703。

示例 1

此代码在 .\bin1 目录创建程序集 A。

将此示例保存在一个名为 CS1703a1.cs 的文件中,并使用以下标记进行编译:/t:library /out:.\bin1\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

示例 2

此代码在 .\bin2 目录创建程序集 A 的副本。

将此示例保存在一个名为 CS1703a2.cs 的文件中,并使用以下标记进行编译:/t:library /out:.\bin2\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

示例 3

此代码引用两个之前的模块中的程序集 A。

将此示例保存在一个名为 CS1703ref.cs 的文件中,并使用以下标记进行编译:/t:library /r:A2=.\bin2\cs1703.dll /r:A1=.\bin1\cs1703.dll

extern alias A1;  
extern alias A2;