コンパイラの警告 (レベル 2) CS1701
アセンブリ参照 "Assembly Name #1" が "Assembly Name #2" に一致した場合、実行時ポリシーの指定が必要になることがあります。
2 つのアセンブリ間で、リリース番号またはバージョン番号が異なります。 正しく統合するためには、以下に示す例に従って、アプリケーションの .config ファイルでディレクティブを指定し、アセンブリの厳密名を正しく指定する必要があります。
例 1
次のマルチファイルの例では、2 つの異なる外部エイリアスを使ってアセンブリを参照しています。 この最初の例では、CS1701_d アセンブリを生成する古いバージョンのコードを作成します。
// CS1701_a.cs
// compile with: /target:library /out:cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("1.0")]
public class A {
public void M1() {}
}
public class C1 {}
例 2
これは、CS1701_d アセンブリの新しいバージョンを生成するコードです。 これ古いバージョンとは異なるディレクトリにコンパイルされることに注意してください。これは、出力ファイルが同じ名前であるために必要な処理です。
// CS1701_b.cs
// compile with: /target:library /out:c:\\cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("2.0")]
public class A {
public void M2() {}
public void M1() {}
}
public class C2 {}
public class C1 {}
例 3
この例では、外部エイリアス A1 および A2 が設定されます。
// CS1701_c.cs
// compile with: /target:library /reference:A2=c:\\cs1701_d.dll /reference:A1=cs1701_d.dll
extern alias A1;
extern alias A2;
// using System;
using a1 = A1::A;
using a2 = A2::A;
public class Ref {
public static a1 A1() { return new a1(); }
public static a2 A2() { return new a2(); }
public static A1::C1 M1() { return new A1::C1(); }
public static A2::C2 M2() { return new A2::C2(); }
}
例 4
この例では、A の 2 つの異なるエイリアスを使用してメソッドが呼び出されます。次の例では C1701 エラーが生成されます。
// CS1701_d.cs
// compile with: /reference:c:\\CS1701_d.dll /reference:CS1701_c.dll
// CS1701 expected
class Tester {
public static void Main() {
Ref.A1().M1();
Ref.A2().M2();
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示