2011-10-21 2 views
3

내 .net 프로젝트는 내 개발자 컴퓨터에 등록한 COM 유형 라이브러리를 참조합니다.이 컴퓨터는이 컴퓨터를 제어 할 수 없습니다. VS2010은 릴리스 및 디버그에 대해 서로 다른 두 가지 interop 어셈블리를 생성합니다 (실제로 다르다). 이들은 각각/obj/Release 및/obj/Debug 폴더에 있습니다. 것은 COM 라이브러리가 아니기 때문에 빌드 머신에 등록되어서는 안된다는 것입니다.COM 참조로 .net 프로젝트 빌드하기

내 옵션에는 어떤 것들이 있습니까? 소스 제어 아래에 interop 어셈블리가있는/obj/Release (Debug) 폴더를 넣는 것이 좋지 않습니다. 그렇게해야한다면 경로를 변경하고 싶지만 그렇게 할 수있는 방법은 없습니다.

IA 자신을 생성하기 위해 tlbimp를 사용해야하는 경우 어떻게 2 (디버그 및 릴리스) 버전을 생성합니까?

답변

4

tlbimp.exe을 사용하여 수동으로 interop 어셈블리를 만든 다음 실제 COM 라이브러리 대신 해당 어셈블리를 참조 할 수 있습니다. 즉, Visual Studio는 interop-assemblies를 생성 할 필요가 없으므로이를 완벽하게 제어 할 수 있습니다. 물론 이것들을 확인해야 할 것입니다. 그러나 원하는 곳 어디든지 넣을 수 있습니다.

편집 : interop 어셈블리는 메타 데이터를 포함하기 때문에, 그 사실 Tlbimp.exe를에서는, "릴리스"또는 "디버그"건설 사이에 차이점이 없습니다, 실행 가능 코드를 말할 것입니다

에는 둘 중 하나를 지정하는 옵션이 없습니다.

+0

2 가지 IA가 다르다 - 나는 diff 도구와 비교했다. 하지만 어쨌든 대답 주셔서 감사합니다, 나는 더 나은 옵션이없는 것 같아요. – Bond

+0

그게 흥미 롭군요 ... 왜 그들이 서로 다른지, 차이점은 무엇이며 그 차이는 실제로 무엇이 될지 궁금합니다. 내가 뭔가를 찾으면 알려주지. – DeCaf

관련 문제