"COM Interop 등록"은 실제로 어떤 역할을합니까?
VS 프로젝트 옵션 "COM interop 등록"이 실제로 수행하는 작업은 정확히 무엇입니까? 이 옵션이 활성화 된 상태에서 라이브러리를 빌드하면 VBScript에서 라이브러리의 CreateObject를 호출 할 수 있기 때문입니다. 그러나 이것이없이 빌드 한 다음 수동으로 regasm을 실행하면 CreateObject가 실패합니다. 그래서 궁금합니다. VS2010은 내가하지 않는 일을 무엇을합니까?
/ tlb 및 / codebase 옵션을 사용하여 Regasm.exe를 실행하는 것과 동일한 작업을 수행합니다. / codebase 옵션은 아마도 잊은 것일 것입니다. Regasm은 DLL을 GAC에 넣고 그렇지 않으면 경고를 생성한다고 가정하는 것을 좋아합니다. GAC는 항상 COM 문제인 DLL Hell을 피하는 매우 좋은 방법입니다. 그러나 개발 머신에는 적합하지 않으므로 코드를 개발하고 테스트하는 동안 GAC를 오염시키고 싶지 않습니다. 여러 버전에 노출 될 가능성이있는 사용자의 컴퓨터에서만 중요합니다.
64 비트 컴퓨터에서 잘못된 버전의 Regasm.exe를 사용하는 것도 문제를 일으키는 또 다른 방법입니다. 일반적으로 컴퓨터에는 4 개의 버전이 있습니다. 32 비트 및 64 비트 버전 (c : \ windows \ microsoft \ framework vs framework64)을 구분해야하며 서로 다른 레지스트리 키를 작성합니다. 클라이언트 앱과 호환되는 것을 선택하려고합니다. 둘 다 사용하는 것도 괜찮습니다. .NET 코드는 어느 모드에서든 실행할 수 있지만 매우 드문 경우입니다. 그리고 v2.0.50727 (.NET 2.0 ~ 3.5SP1)과 v4.0 버전을 구분하십시오. 올바른 Visual Studio 명령 프롬프트를 선택하는 것은 전투의 절반입니다.
참조 URL : https://stackoverflow.com/questions/3534600/what-does-register-for-com-interop-actually-do
'IT story' 카테고리의 다른 글
PHP umask (0) 목적은 무엇입니까 (0) | 2020.12.31 |
---|---|
Google Map Api v2가 로그에 'V / GoogleSignatureVerifier : 서명이 유효하지 않습니다'오류 메시지를 표시 함 (0) | 2020.12.31 |
`--squash`와`--no-ff --no-commit`의 차이점은 무엇입니까? (0) | 2020.12.31 |
MySQL 쿼리의 여러 열 인덱스 이해 (0) | 2020.12.31 |
Maven 저장소, pom.xml 또는 settings.xml을 지정하는 가장 좋은 장소는 어디입니까? (0) | 2020.12.31 |