2010-12-20 4 views
2

C# 프로그램은 interop 어셈블리를 통해 COM 구성 요소를 사용합니다. COM 구성 요소가 때때로 변경됩니다 (인터페이스 끝에 인터페이스가 추가됨). I need to build this program in an automated build and have the interop assembly incrementing its version number -이 작업은 tlbimp를 미리 빌드 단계로 사용하여 수행 할 수 있습니다.버전 번호를 변경하는 interop 어셈블리를 어떻게 추가합니까?

프로젝트 파일의 참조가 특정 버전 (예 : 4.0.0.34)으로 설정되어 있습니다. 이는 참조가 추가 될 때 interop 어셈블리가 갖는 버전입니다. 번호가 자동 빌드에 의해 증가되고 사전 빌드 단계가 완료되면 프로젝트 파일의 버전 번호 저장소가 더 이상 어셈블리 속성의 번호와 일치하지 않습니다.

경고 MSB3245 :이 문제를 해결할 수 없습니다. 참고. 어셈블리를 찾을 수 없습니다 "Interop.MyCOMComponent, Culture = neutral, Version = 4.0.0.34, processorArchitecture = MSIL". 어셈블리가 디스크에 있는지 확인하십시오. 이 참조가 코드에서 필요하면 컴파일 오류가 발생할 수 있습니다.

및 형식 또는 네임 스페이스 이름 'MyCOMComponent이'을 (를) 찾을 수 없습니다 다음

은 (당신은 using 지시문 또는 어셈블리 참조가?)

것은 어떻게 든 비주얼 말할 수 Studio는 프로젝트 파일 내에 정확한 어셈블리 버전을 저장하고 싶지 않으며 컴파일 할 때 어떤 버전을 사용해야합니까?

+0

먼저 이전 질문을 닫습니다. –

답변

1

나를 위해 일한 것은 "COM"참조를 제거하고 일반적인 ".NET"참조 인 것처럼 interop 어셈블리에 대한 참조를 추가하는 것이 었습니다. 후자가 버전 번호를 저장하지 않기 때문에 문제는 단 한 번에 해결되었습니다.

1

.csproj 파일에서 Reference 요소에 SpecificVersion이라는 속성이 있다고 생각합니다.

이 속성을 제거하면 원하는 효과를 얻을 수 있습니다.

관련 문제