2010-11-25 69 views
2

由於某些原因,Wix快捷方式在卸載時不會被刪除,Wix不會刪除VS 2008中卸載的快捷方式

這是我的代碼:

<Directory Id="ProgramFilesFolder"> 
    <Directory Id="INSTALLDIR" Name="App"> 

     <Component Id="AppExecutable" DiskId="1" Guid="12854481-BE33-4733-8B46-FDB424057C9A"> 
     <File Id="App1ExecutableFile" Source="$(var.RESOURCEDIR)\App.exe" KeyPath="yes"> 
     </File> 
     </Component> 

    </Directory> 
    </Directory> 

    <Directory Id="ProgramMenuFolder" Name="PMFiles"> 
    <Directory Id="AppShortcutDirectory" Name="App for OS"> 

     <Component Id="App1Shortcuts" DiskId="1" Guid=""> 
     <RegistryValue Root="HKCU" Key="[ApplicationRegistryPath]\MsiInstaller\GuestShortcutsAreInstalled" Type="string" Value="" KeyPath="yes" /> 

     <Shortcut Id="App1ExecutableShortcut" Directory="AppShortcutDirectory" 
        Target="[#App1ExecutableFile]" Name="App" 
        WorkingDirectory="INSTALLDIR" Description="Run the App" Advertise="no" /> 

     <RemoveFolder Id="DelteShortcutFolder1" Directory="AppShortcutDirectory" On="uninstall" /> 

     </Component> 
    </Directory> 
    </Directory> 

的感謝!

回答

3

快捷方式所在組件的Guid是空字符串。看看什麼documentation says一下:

它也可以將值設置爲 一個空字符串指定 非託管組件。非託管 部件是一個安全漏洞 因爲組件 不能除去或通過 Windows安裝修復(它本質上是一個 unpatchable,永久分量)。

因此,在那裏放置一個有效的GUID或者只是'*'來解決這個問題。

+0

是的,它工作,但由於某些原因,「*」不起作用。 – Ezequiel 2010-11-29 13:09:36