등록의 등록을 취소하기 위해 추가 노력 (및 관련 수 매핑 된 하이브)에는 관리자 권한이 필요하며 항상 필요합니다. 이것은 "필자는 XP에서는 Program Files 디렉토리에 쓸 수 있지만 Vista에서는 작성할 수 없다"는 것과 동일한 문제입니다. 왜냐하면 모든 사람이 XP의 관리자 였기 때문에 UAC 이후 아무도 관리자 권한이 없기 때문입니다 (관리자는 공용 관리자로, 다른 관리자는 UAC 권한 상승 프롬프트). 자동 등록
일반적인 이유는 설치시 실패 할 수 있습니다 : 고도의
부족 (같은 사용자마다 그 결코 UAC 상승 대화 상자를 보여줍니다 설치).
누락 된 종속성. 당신이 의존하는 DLL이있을 수 있으며 그것은 대상 시스템에 있지 않습니다. 설치가 완료된 후 등록 작업을하면 Win32 또는 관리되는 코드 어셈블리에 종속 될 수 있습니다. WinSxS로 이동하는 C++ 런타임에 종속성이 있고이를 병합 모듈로 포함시킨 경우 설치가 완료되고 등록이 실패 할 때까지 커밋되지 않습니다. GAC에 들어가는 어셈블리에 대해서도 마찬가지지만 Win32 등록의 경우에는 그렇지 않습니다.Windows 7에서 무작위 인 경우는 일반적으로 일부 시스템에 이미 C++ 런타임이 설치되어 있고 일부는 설치되어 있지 않기 때문입니다.
Visual Studio 및 WiX를 비롯한 대부분의 도구는 빌드시 COM 등록 추출이 가능합니다. 그것은 정적 데이터이므로 MSI 파일에있을 이유가 없습니다. WiX의 경우 도구는 열이라고합니다. 또한 종속성 문제를 피하면서 설치시 Dll을 호출 할 필요가 없음을 의미합니다. vsdraCOM 설정은 이것을 수행하고 성공적으로 사용했지만 모든 등록과 마찬가지로 빌드 할 때 종속 DLL이 필요합니다. 작동하는지 확인하는 좋은 방법은 없지만 Windows SDK에서 Orca와 같은 MSI 편집기를 가져 와서 MSI 파일을 열면 클래스 테이블에 클래스가 표시되어야합니다. 레지스트리 테이블.
실제로 "등록하지 않음"에 대한 자세한 내용이 있으면 도움이 될 수도 있습니다. 인터페이스 항목, CLSID 항목, 설치시 오류 메시지, 클래스를 인스턴스화 할 수 없어 실행되지 않는 앱이 누락 되었습니까?