2017-12-15 23 views
0

작업과 나는이 링크에서 정확한 마크 업을 사용하고 있지 :윅스 제거 바로 가기 내 응용 프로그램에 대한 설치 제거 바로 가기를 만들려고하고

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_uninstall_shortcut.html

그것은 프로그램 메뉴에서 응용 프로그램 디렉토리에 바로 가기를 생성 폴더.

제거 바로 가기를 클릭하면 "이 설치 패키지를 열 수 없습니다. 패키지가 존재하고 액세스 할 수 있는지 확인하거나 응용 프로그램 공급 업체에 문의하여 확인하십시오. 이

다음

내가 the.wxs 파일

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="APPLICATIONROOTDIRECTORY" Name="MyApplication"/> 
     </Directory> 
     <Directory Id="ProgramMenuFolder"> 
      <Directory Id="ApplicationProgramsFolder" Name="MyApplication"/> 
     </Directory> 
    </Directory> 

    <DirectoryRef Id="APPLICATIONROOTDIRECTORY"> 
     <Component Id="myapplication.exe" Guid="xxxxxxxx-1BF3-4394-ABE4-CABB29D6454C"> 
      <File Id="myapplication.exe" Source="myapplication.exe" KeyPath="yes" Checksum="yes"/> 
     </Component> 
     <Component Id="documentation.html" Guid="xxxxxxxx-44F3-4E6C-87B9-903CF17EF002"> 
      <File Id="documentation.html" Source="documentation.html" KeyPath="yes"/> 
     </Component> 
    </DirectoryRef> 

    <DirectoryRef Id="ApplicationProgramsFolder"> 
     <Component Id="ApplicationShortcut" Guid="xxxxxxxx-F7C4-40D6-930C-3BD78143A0EF"> 
      <Shortcut Id="ApplicationStartMenuShortcut" 
       Name="MyApplication" 
       Description="Uninstall Test" 
       Target="[#myapplication.exe]" 
         WorkingDirectory="APPLICATIONROOTDIRECTORY"/> 
      <!-- Step 1: Add the uninstall shortcut to your installer package --> 
      <Shortcut Id="UninstallProduct"    
         Name="Uninstall My Application" 
         Description="Uninstalls My Application" 
         Target="[System64Folder]msiexec.exe" 
         Arguments="/x xxxxxxxx-1D27-4656-AB3F-41A2047CB6C0"/> 
      <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\Microsoft\UninstallTest" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
     </Component> 
    </DirectoryRef> 

    <Feature Id="MainApplication" Title="Main Application" Level="1"> 
     <ComponentRef Id="myapplication.exe" /> 
     <ComponentRef Id="documentation.html" /> 
     <ComponentRef Id="ApplicationShortcut" /> 
    </Feature> 
</Product> 
에있을 것입니다 "올바른 Windows Installer 패키지입니다

아직이 문제에 대한 해결책을 찾을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다

+0

주요 업그레이드? 아마도 하드 코딩 된 ProductCode? –

+0

하드 코드 된 ProductCode가 문제가되어 다시 [ProductCode]로 변경되었습니다. 감사합니다! – Kashif

답변

1

시작 메뉴에 제거 바로 가기를 삽입하는 것은 적어도 지침서에 대한 것이 었습니다. 적어도 2000 년대 초반부터 였고, Windows 8에 도입 된 새로운 시작 메뉴 타일은 실제로 그렇게하는 것이 매우 바람직하지 않습니다. 다음 문서를 읽어주십시오 : Desktop App Tiles on the Start Screen (해야 할 것과하지 말것).

테스트 할 시스템이 없지만 Windows 8 may actually hide uninstall shortcuts입니다. 다른 바로 가기 (예 : 추가 정보 파일, 웹 사이트 바로 가기 등)는 피해야합니다. Windows 10에서 테스트했는데 시작 메뉴에서 제거 바로 가기를 볼 수 있습니다.

이 특별한 경우 내 조언은 실제로 사용자 지정 바로 가기를 제거하고 성공을 선언하는 것입니다. 미안 당신에게 이상적이 아니지만 그렇게 말하지 않는 경우 : 기본 Windows 디자인에 맞서 싸우지 마십시오. 다시 싸우면 길들이기 위해 항상 후회할 것입니다. 그냥 야생 짐승을 안장하고 찢어 버리세요 :-).

Chris Painter가 제안하는대로 제거 바로 가기에서 ProductCode가 일치하지 않을 수 있습니다.당신이 변화 시도해 볼 수도 있습니다 디버깅 : Arguments="/x xxxxxxxx-1D27-4656-AB3F-41A2047CB6C0"/>Arguments="/x [ProductCode]"/>에 그래서는 다음과 같습니다

<Shortcut Id="UninstallProduct"    
      Name="Uninstall My Application" 
      Description="Uninstalls My Application" 
      Target="[System64Folder]msiexec.exe" 
      Arguments="/x [ProductCode]"/> 

이 모든 테스트 할 수있는 새 버전을 모든 인스턴스를 제거 다시 한 후 설치해야합니다.

빠른 테스트를 실행했으며 Windows 10에서 작동했습니다. 나의 바로 가기에서 바로 가기를 제거해야합니다. 흥미롭게도 같은 위치에 인터넷 바로 가기를 추가하면 (디스크에 파일이 만들어 짐) 시작 메뉴에 표시되지 않습니다 (Windows 10에서도 바로 가기 숨김을 나타낼 수 있음). 참조를 들어

:

+0

하드 코드 된 ProductCode가 문제였습니다. 다시 [ProductCode]로 변경되었습니다. 감사합니다. – Kashif

+0

@Kashif - 품질 보증에 대한 좋은 행운입니다. Windows 8 및 10의 "바로 가기 숨기기 문제"를 확실히 테스트 할 것입니다. 테스트 할 가상 컴퓨터가 몇 개인 경우에 한합니다. –

0
는 파일을 찾을 수없는 경우 있도록 제거가 \ WINDOWS \ 설치의 캐시 된 MSI 파일, 일반적으로 [16 진수 문자열]의 .msi의 InstallExecuteSequence에서 열고 실행하려고합니다

:

  1. 있는지 확인을 캐시 된 MSI는 실제로 거기에 있으며 제거되지 않았습니다 (일부 사용자는 폴더를 지 웁니다).

  2. 패키지가 설치된 위치에 원래의 MSI가있는 경우 MSI에 액세스하려고 시도 할 수도 있습니다. 해당 패키지도 사용할 수 있습니까?

  3. 보안 문제가있을 수 있으므로 바로 가기에서 시작된 msiexec 프로세스에 캐시 된 MSI 파일에 대한 액세스 권한이 있는지 확인하십시오. 성공적으로 프로그램에서 제거 할 수 있다면 나는

& 특징 그때 제거 프로세스가 캐시 된 MSI 파일에 대한 액세스 권한이없는 사용자 계정으로 실행되고 있는지 의심 것입니다.