/u arg가 작동하지 않을 때 처음에 RegSvr32로 추가 된 COM dll을 등록 취소하는 방법은 무엇입니까?


13

오른쪽, 처음 실행 :

다음
c:\regsvr32 Amazing.dll 

, (실수 - 내가 추가 할 수 있습니다) 내가 다시 실행하고 있어야합니다 (실제로) 'Amazing.dll'의 새로운 버전이 출시 된 때 다시. 예 - 나는 지금 내가 실행해야했습니다 알고

c:\regsvr32 /u Amazing.dll 

사전을 -하지만 헤이! 나는 잊었다.

VS에서 COM 참조를 추가 할 때 'Amazing'이라는 3 개의 인스턴스가 모두 같은 위치 (c : \ Amazing.dll)를 가리키며 regsvr32 /u을 실행하면 참조 중 하나가 제거되고, 두 번째 시간 - 아무것도하지 않습니다 ...

어떻게 이러한 참조를 제거합니까? regedit 시나리오가 있습니까? - 그렇다면 무엇을 정확히 키 중 하나를 삭제하면 어떻게됩니까 ???

건배

14

개체의 GUID가 변경되어서는 안됩니다. 즉, 일단 COM 개체를 등록하면 다시 등록하면 레지스트리에 아무 것도 추가하지 않아야합니다.

추가 COM 인터페이스 또는 개체를 프로젝트에 추가하지 않는 한.

어쨌든 일회성 거래 인 경우 regedit를 열고 수동으로 불필요한 키를 삭제하십시오.


0

저는 전에 COM과 끔찍한 혼란에 처했습니다. 불행히도 레지스트리를 삭제하면서 각 참조를 삭제해야했습니다.


4

MS에서 여전히 떠 다니는 도구가 있는데 레지스트리를 검색하고 같은 유효한 파일을 가리키는 COM 키를 찾은 Win95 일 이후부터 RegClean이라고 불렀습니다 (여기에서 발견했습니다 : http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) 어느 곳에서 보았는가? 특히 모든 빌드 후에 새로운 COM GUID를 생성하는 VB의 레거시 COM 항목을 망칠 때 특히 그렇습니다.

그렇다면 파일을 unreg'd하고 삭제하거나 파일을 옮긴 다음 앱을 실행하면 "고아"항목이 삭제됩니다.

RegEdit을 사용하여 키를 제거하려는 경우 클래스 ID와 GUID 항목을 제거해야 할 수 있습니다.