2010-12-13 6 views
4

네이티브 C++ COM 개체를 사용하는 C# 프로그램이 있습니다. Visual Studio에서는 COM 개체의 형식에 대한 래퍼가있는 interop 어셈블리를 생성합니다. 매번 C# 프로그램 interop 어셈블리를 다시 컴파일 할 때 버전 1.0.0.0이 있습니다.interop 어셈블리에 할당 된 버전 번호를 제어 할 수 있습니까?

이것은 설치 프로그램에 좋지 않습니다. 간혹 interop 어셈블리를 변경해야하므로 COM 개체 인터페이스를 확장 (일부 인터페이스 끝에서 새 메서드 추가)하는 경우가 있습니다. 설치 프로그램이 기존 설치를 업데이트하려고 시도 할 때 interop 어셈블리가 변경되지 않았다고 생각하고 (버전 1.0.0.0이 아직 남아 있기 때문에) 업데이트를 건너 뛰고 프로그램이 작동하지 않습니다.

interop 어셈블리에 할당 된 버전 번호를 어떻게 제어 할 수 있습니까?

+0

ho1이 맞으면 TlbImp를 사용하여 interop dll을 생성하고 버전을 지정할 수 있습니다. 이것을 미리 빌드 단계로 만들 수 있습니다. –

답변

2

잠시 동안이 작업 방식이 잘못 기억 될 수도 있지만 VS를 사용하여 래퍼를 만드는 대신 Tlbimp을 사용하면 원하는 작업을 수행 할 수 있다고 생각합니다.

asmversion 매개 변수를 사용하면 가능할 수 있으며, 그렇지 않은 경우 keyfile 매개 변수를 사용하여 강력한 이름을 지정하면 가능할 수 있습니다.

관련 문제