Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0281

Přátelský přístup byl udělen sestavení AssemblyName1, ale výstupní sestavení má název AssemblyName2. Zkuste přidat odkaz na AssemblyName1 nebo změnit název výstupního sestavení tak, aby odpovídal.

Přátelský přístup je nová funkce CLR (Common Language Runtime), která umožňuje sestavení zobrazit jiné neveřejné typy sestavení. K této chybě dochází, když sestavení udělující příteli přístup určuje nesprávný název pro sestavení grantee. Další informace naleznete v tématu Přátelská sestavení.

Příklad 1

Následující posloupnost ukázek kódu vygeneruje CS0281.

Soubory použité k vytvoření silných pojmenovaných sestavení se generují následujícím způsobem:

  • sn -d CS0281.snk

  • sn -k CS0281.snk

  • sn -i CS0281.snk CS0281.snk

  • sn -pc CS0281.snk key.publickey

  • sn -tp key.publickey

C#
// CS0281.cs  
// compile with: /target:library /keyfile:CS0281.snk  
public class A {}  

Příklad 2

C#
// CS0281_b.cs  
// compile with: /target:library /keyfile:CS0281.snk /reference:CS0281.dll  
[assembly:System.Runtime.CompilerServices.InternalsVisibleTo("CS0281, PublicKey=00240000048000009400000006020000002400005253413100040000010001004b2d4d56af7c50be2fcbbf97cb880b9e73ad84467a587191fef63aadc118a96cecf9d508cd679c907b6e20f71684300bdc2c0a851019af0c96b29bf8f1339753276041aefd67db46139e6348b3a12f29537b4dc6c2c19829df2c9ed6803f3c63c3b84cfa2728849386aea575c543a5f70fa85793d2946f15f7fe1ccb0c5e8fe0")]  
class B : A {}  

Příklad 3

Následující ukázka vygeneruje CS0281.

Všimněte si, že tato ukázka vytvoří výstupní soubor se stejným názvem jako výstupní soubor v první ukázce. Chcete-li vyřešit, neměňte atributy sestavení komponenty a přidejte třídu C.

C#
// CS0281_c.cs  
// compile with: /target:library /out:CS0281.dll /keyfile:CS0281.snk /reference:CS0281_b.dll  
// CS0281 expected  
[assembly:System.Reflection.AssemblyVersion("3")]  
[assembly:System.Reflection.AssemblyCulture("en-us")]  
class C : B {}  
public class A {}