Compartilhar via


CS0281 de erro do compilador

Mensagem de erro

Acesso Friend foi concedido a 'AssemblyName1', mas o assembly de saída é denominado 'AssemblyName2'.Tente adicionar uma referência a 'AssemblyName1' ou alterar o nome do assembly de saída para corresponder.

Acesso Friend é um novo recurso de tempo de execução (CLR) linguagem comum que permite que um assembly ver tipos de não-públicos do assembly.Este erro ocorre quando o assembly conceder acesso de amigo Especifica o nome errado para o assembly any.Para obter mais informações, consulte Friend Assemblies (Guia de programação C#).

Exemplo

A sequência de Exemplos de código a seguir gerará CS0281.

sistema autônomo arquivos usados para criar sistema autônomo assemblies nomeados fortes são gerados sistema autônomo segue:

  • CS0281.snk sn -d

  • CS0281.snk sn -k

  • sn -i CS0281.snk CS0281.snk

  • sn - pc CS0281.snk chave.publickey

  • sn - chave.publickey tp

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

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

O exemplo a seguir gera CS0281.

Observe que este exemplo cria um arquivo de saída com o mesmo nome de arquivo de saída no primeiro exemplo.Para resolver, não altere os atributos do assembly do componente e adicionar classe 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 {}