2012-05-15 75 views
0

當我安裝.msi文件,我得到生成開始菜單和桌面上的快捷方式,但是當我卸載桌面快捷方式被刪除,但開始菜單。我的代碼是波紋管。請幫我解決我的問題。我已經花了差不多1天時間。爲什麼卸載後未刪除「開始」菜單快捷方式?

<Directory Id="ProgramMenuFolder"> 
    <Directory Id="ProgramMenuSubfolder" Name="Kiosk"> 
     <Component Id="ApplicationShortcuts" Guid="12345678-1234-1234-1234-333333333333"> 
     <Shortcut Id="ApplicationShortcut1" Name="Kiosk" Description="Solusoft Product" Target="[INSTALLDIR]AMP\1.0.0.0\mpkiosk.exe" WorkingDirectory="INSTALLDIR"/> 
     <RegistryValue Root="HKCU" Key="Software\Kiosk" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
     <RemoveFolder Id="ApplicationShortcut1" On="uninstall"/> 
     </Component> 
    </Directory> 
</Directory> 

回答

0

下面是我在我的項目中使用的代碼。希望,它會有所幫助。我想你可以使用'RemoveFile'而不是'RemoveFolder'並且不要忘記把'Name'屬性裏面。

  <RegistryKey Action="createAndRemoveOnUninstall" Root="HKCU" 
         Key="Software\$(var.ManufacturerEng)\$(var.ProductName)\$(var.ApplicationName)"> 
       <RegistryValue Name="ShortcutService" 
           Type="integer" Value="1" 
           KeyPath="yes"> 
       </RegistryValue> 
      </RegistryKey> 
      <Shortcut Advertise="no" Directory="ApplicationProgramsFolder" 
         Name="ServiceCC" 
         Target="[INSTALLLOCATION]Service.exe" 
         Id="SHORTCUT_serv" 
         WorkingDirectory="INSTALLLOCATION"> 
      </Shortcut> 
      <RemoveFile Id="remove_serviceshort" Name="ServiceCC" On="uninstall"/> 
      <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> 
     </Component> 
4

你在你的代碼錯誤。

相反的:

<RemoveFolder Id="ApplicationShortcut1" On="uninstall"/> 

用途:

<RemoveFolder Id="ProgramMenuSubfolder" On="uninstall"/> 

這應該這樣做。

5

在我的情況下,在組件上,我有GUID =「*」,並且shorcuts沒有被刪除。

我使用了一個硬編碼的GUID,例如:Guid =「cc509cb7-c1a1-46cf-8c62-7cbb0017783c」,並且刪除了快捷方式。

問候。

0

在我的情況下,我嘗試了不同的選項,並且有一個註釋掉的部分具有相同的GUID。將其更改爲其他GUID,即使另一個被註釋掉,也可以工作。

相關問題