次の方法で共有


コンパイラ エラー CS1703

同じ簡易名 'name' でアセンブリが既にインポートされています。 参照の 1 つを削除するか、サイド バイ サイドを有効にするために署名してください。

同じパスおよびファイル名を持つ参照はコンパイラによって削除されますが、同じファイルが別々の場所に存在していたり、バージョン番号を変更するのを忘れている可能性があります。 このエラーは、同じアセンブリ ID を持つ 2 つの参照が存在するため、コンパイラがメタデータ内で両者を区別できないことを示しています。 重複する参照の一方を削除するか、アセンブリのバージョン番号を繰り上げるなどして、参照が重複しないようにする必要があります。

次のコードではエラー 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

次のコードでは、前述の 2 つのモジュールのアセンブリ A を参照します。

このサンプルを CS1703ref.cs という名前のファイルで保存し、/t:library /r:A2=.\bin2\cs1703.dll /r:A1=.\bin1\cs1703.dll のようにフラグを指定してコンパイルします。

extern alias A1;  
extern alias A2;