영어로 읽기

다음을 통해 공유


컴파일러 오류 CS0281

'AssemblyName1'에 Friend 액세스 권한이 부여되었지만 출력 어셈블리의 이름이 'AssemblyName2'로 지정되었습니다. 출력 어셈블리 이름이 일치하도록 변경하거나 'AssemblyName1'에 대한 참조를 추가하세요.

Friend 액세스는 어셈블리가 다른 어셈블리의 public이 아닌 형식을 볼 수 있도록 하는 새로운 CLR(공용 언어 런타임) 기능입니다. 이 오류는 Friend 액세스 권한을 부여하는 어셈블리가 피부여자 어셈블리에 대한 잘못된 이름을 지정하는 경우에 발생합니다. 자세한 내용은 Friend 어셈블리를 참조하세요.

예 1

코드 샘플의 다음 시퀀스는 CS0281을 생성합니다.

강력한 이름의 어셈블리를 만드는 데 사용되는 파일은 다음과 같이 생성됩니다.

  • sn -d CS0281.snk

  • sn -k CS0281.snk

  • sn -i CS0281.snk CS0281.snk

  • sn -pc CS0281.snk key.publickey

  • sn -tp key.publickey

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

예제 2

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

예 3

다음 샘플에서는 CS0281을 생성합니다.

이 샘플은 첫 번째 샘플의 출력 파일과 동일한 이름의 출력 파일을 만듭니다. 해결하려면 구성 요소의 어셈블리 특성을 변경하지 않고 클래스 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 {}