Erro do Compilador CS0281Compiler Error CS0281

O acesso Friend foi concedido a ' AssemblyName1 ', mas o assembly de saída é chamado de ' AssemblyName2 '.Friend access was granted to 'AssemblyName1', but the output assembly is named 'AssemblyName2'. Tente adicionar uma referência a ' AssemblyName1 ' ou alterar o nome do assembly de saída para corresponder.Try adding a reference to 'AssemblyName1' or changing the output assembly name to match.

O acesso Friend é um novo recurso de Common Language Runtime (CLR) que permite que um assembly Veja os tipos não públicos de outro assembly.Friend access is a new common language runtime (CLR) feature that enables an assembly to see another assembly's non-public types. Esse erro ocorre quando o assembly que concede o acesso Friend especifica o nome errado para o assembly entidade autorizada.This error occurs when the assembly granting friend access specifies the wrong name for the grantee assembly. Para obter mais informações, consulte Assemblies amigáveis.For more information, see Friend Assemblies.

ExemploExample

A seguinte sequência de exemplos de código irá gerar CS0281.The following sequence of code samples will generate CS0281.

Os arquivos usados para criar os assemblies com nome forte são gerados da seguinte maneira:The files used to create the strong named assemblies are generated as follows:

  • SN-d CS0281. SNKsn -d CS0281.snk

  • SN-k CS0281. SNKsn -k CS0281.snk

  • sn-i CS0281. SNK CS0281. SNKsn -i CS0281.snk CS0281.snk

  • SN-PC CS0281. SNK Key. PublicKeysn -pc CS0281.snk key.publickey

  • SN-TP chave. PublicKeysn -tp key.publickey

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

ExemploExample

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

ExemploExample

O exemplo a seguir gera CS0281.The following sample generates CS0281.

Observe que este exemplo cria um arquivo de saída com o mesmo nome do arquivo de saída no primeiro exemplo.Notice that this sample creates an output file with the same name as the output file in the first sample. Para resolver, não altere os atributos de assembly do componente e adicione a classe C.To resolve, do not change the assembly attributes of the component and add class 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 {}