2017-01-01 3 views
0

MSI 설치 프로그램에서 Squirrel 설치 프로그램을 사용하고 있습니다. MSI 설치 프로그램이 Squirrel 설치 프로그램을 호출합니다. MSI 설치 프로그램은 프로그램 추가/제거에 항목이 있으므로 Squirrel 설치 프로그램에서 만든 항목을 제거 (또는 생성하지 않음)하고 싶습니다. 내가 무슨 짓을 Squirrel.Windows 설치 프로그램에서 응용 프로그램을 제거하지 않고 제거 항목을 제거

onFirstRun의 이벤트 핸들러에서 RemoveUninstallerRegistryEntry을 사용했지만, 오류 다음 날주고있다 :이 오류를 바탕으로

Couldn't write uninstall icon, don't care: System.IO.IOException: Illegal operation attempted on a registry key that has been marked for deletion. 

, 나는 내가 잘못된 장소에서 제거 항목을 제거하고 생각합니다. 제거 항목을 제거 할 수있는 장소는 무엇입니까? 또는 다람쥐가 처음에 이러한 항목을 만드는 것을 막을 수있는 방법이 있습니까?

+0

설치 프로그램에서'-s' 플래그를 사용하면 설치 프로그램이 처음 설치되지 않아 설치 제거 프로그램 항목이 작성됩니다. – skjoshi

답변

0

IMO, "트로이잔"MSI 생성. MSPS에서 ARPSYSTEMCOMPONENT 등록 정보를 설정할 수 있으며 프로그램 추가 제거에 표시되지 않습니다. 하지만 솔직히 MSI가 시스템에 자체 등록을 원하지는 않을 것입니다. 이 경우 PublishComponents, PublishFeatures 및 PublishProduct와 같은 특정 주요 표준 작업을 설치 프로그램에서 제거하십시오.

+0

내부 설치 관리자 (Squirrel)가 트로이 목마로 간주 될 수 있지만 트로이 MSI를 만들지는 않습니다. MSI 항목을 숨기고 싶지 않습니다. 이 내부 설치 프로그램의 제거 명령은 MSI 제거 프로그램에서 호출하므로 안쪽 설치 관리자가 제거 프로그램 항목을 숨기려고합니다. 난 그냥 1 설치에 2 항목을함으로써 사용자에 대한 혼란을 덜고 싶습니다. – skjoshi

+0

이것은 트로이 MSI의 정의입니다. 내부 설치자는 그리스입니다. 참조 : https://blogs.msdn.microsoft.com/robmen/2006/02/01/google-toolbar-beta-for-enterprise-a-trojan-horse-msi-package/ –

+0

MSI의 항목을 정말로 원하면 MSI에서 제거 프로그램을 호출하고 다람쥐 제거 프로그램을 호출 할 수 있도록 프로그램을 추가로 제거하면 정말 MSI 질문이 아닙니다. MSI가 예상대로 작동합니다. 너를 억압해야 할 다람쥐 야. 호기심에서 MSI는 사용자 당 또는 컴퓨터 당 무엇입니까? 다람쥐 설치 프로그램이 동일하거나 다를 수 있습니까? –

0

이 작업을 수행하든하지 않든 관계없이 레지스트리 항목을 생성하지 않도록 다람쥐를 수정할 수 있습니다. CreateUninstallerRegistryEntry에 대한 호출을 주석 처리하거나 this file에 함수를 주석으로 처리하십시오. 다람쥐를 재건하고 너겟의 설명서를 사용자 정의 버전으로 바꾸는 것만으로도 충분합니다.
응용 프로그램의 큰 부분을 다람쥐로 부트 스트랩하는 동안이 작업에 아무런 문제가 없습니다.