2
我正嘗試在我的應用程序的程序文件菜單上創建一個快捷方式。但是,由於我的公司可能有許多帶有其自己安裝程序的產品,我希望將它們放在菜單上的子文件夾中,其中每個安裝程序都將其產品快捷方式添加到此子菜單。問題使用Wix創建/刪除startmenu快捷方式
到目前爲止,我已經實現了這一點,但是當我卸載它時,它會在啓動菜單上留下它的工件,如果我卸載它們,它仍會留下公司文件夾以及任何失敗的子菜單。
繼承人我試圖使用的WIX代碼的一部分。我使用的多個安裝相同的代碼爲不同的產品:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name ="PFiles">
<Directory Id="CompanyFolder" Name="!(loc.ManufacturerName)">
<Directory Id="INSTALLDIR" Name="!(loc.ProductName)"/>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="CompanyProgramsFolder" Name="!(loc.ManufacturerName)">
<Directory Id="ProductFolder" Name="!(loc.ProductName)"/>
</Directory>
</Directory>
</Directory>
<DirectoryRef Id="CompanyProgramsFolder">
<Component Id="CompanyProgramsFolderComponent" Guid="{SOME GUID}" >
<RegistryValue Root="HKCU" Key="Software\!(loc.ManufacturerName)" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
<RemoveFolder Id="CompanyProgramsFolder" On="uninstall"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="ProductFolder">
<Component Id="ApplicationShortcut" Guid="SOME GUID">
<Shortcut Id="ApplicationStartMenuShortcut" Icon="Company.ico" Name="!(loc.ProductName)" Description="!(loc.ApplicationDescription)" Target="[INSTALLDIR]MyApplication.exe" WorkingDirectory="INSTALLDIR"/>
<Shortcut Id="UninstallProduct" Icon="Company.ico" Name="Uninstall !(loc.ProductName)" Description="Uninstalls !(loc.ProductName)"
Target="[SystemFolder]msiexec.exe"
Arguments="/x [ProductCode]"/>
<RemoveFolder Id="ProductFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\!(loc.ManufacturerName)\!(loc.ProductName)" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<!-- Set the components defined in our fragment files that will be used for our feature -->
<Feature Id="MainFeature" Title="!(loc.ProductName)" Description="!(loc.ApplicationDescription)" Level="1">
<ComponentGroupRef Id="Files" />
<ComponentRef Id="CompanyProgramsFolderComponent" />
<ComponentRef Id="ApplicationShortcut" />
</Feature>
有沒有辦法得到這個工作?我不喜歡註冊表值在這裏玩什麼功能,所以我可能一直天真地使用它們。
如果你想什麼刪除桌面和開始菜單快捷方式。你應該創建多個註冊表項和RemoveFolder項嗎? – rolls