컴파일러 오류 CS1703

단순한 이름 ‘name’이 같은 어셈블리를 이미 가져왔습니다. 참조 중 하나를 제거하거나, 참조에 서명하여 side-by-side를 사용하도록 설정하세요.

컴파일러가 경로와 파일 이름이 같은 참조를 제거하지만 동일한 파일이 두 위치에 있거나 버전 번호 변경을 잊었을 수 있습니다. 이 오류는 두 참조가 동일한 어셈블리 ID를 가지며 그 결과 컴파일러가 메타데이터에서 이들을 구별할 수 없음을 나타냅니다. 중복된 참조 중 하나를 제거하거나 어셈블리 버전 번호를 늘리는 등의 방식으로 참조를 고유하게 하시기 바랍니다.

다음 코드에서는 CS1703 오류가 발생합니다.

예 1

이 코드는 .\bin1 디렉터리에 어셈블리 A를 생성합니다.

CS1703a1.cs라는 파일에 이 예제를 저장하고 다음 플래그를 사용하여 컴파일하세요. /t:library /out:.\bin1\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

예제 2

이 코드는 .\bin2 디렉터리에 어셈블리 A의 복사본을 생성합니다.

CS1703a2.cs라는 파일에 이 예제를 저장하고 다음 플래그를 사용하여 컴파일하세요. /t:library /out:.\bin2\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

예 3

이 코드는 두 개의 이전 모듈에서 어셈블리 A를 참조합니다.

CS1703ref.cs라는 파일에 이 예제를 저장하고 다음 플래그를 사용하여 컴파일하세요. /t:library /r:A2=.\bin2\cs1703.dll /r:A1=.\bin1\cs1703.dll

extern alias A1;  
extern alias A2;