gpt4 book ai didi

xml - 使用 Wix 从控制面板使用快捷方式卸载 exe

转载 作者:数据小太阳 更新时间:2023-10-29 02:12:14 26 4
gpt4 key购买 nike

我正在使用 Wix 为 wpf 应用程序创建 MSI 安装程序。我正在创建 2 个项目,一个是 Wix 设置项目,另一个是 Bootstrap 。安装项目中有一个名为 product.wxs 的文件,Bootstrapper 项目中有一个名为 Bundle.wxs 的文件。我正在 product.wxs 文件中创建快捷方式,如下面的代码所示。我有在 Bootstrapper 中设置项目的引用。我可以在开始菜单中看到这个快捷方式。当我运行此快捷方式时,它会从之前安装它的 c:\中删除应用程序。但它仍然显示控制面板中的条目(添加或删除程序)。这种情况发生在我使用由 Bootstrapper 项目创建的 Exe 时。但是当我使用由 Set Up 项目创建的安装程序,效果很好。控制面板中的条目也被删除。我无法弄清楚 Bootstrap 项目发生了什么。这是我的 SetUp 项目中的 Product.wxs 代码:

  <Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuSubfolder" Name="Vizitech Solutions">
<Component Id="ApplicationShortcuts" Guid="*">
<Shortcut Id="ApplicationShortcut1" Name="Consenus Sweeper"
Description="Consensus"
Target="[INSTALLFOLDER]ConsenusSweeper.exe"
WorkingDirectory="INSTALLFOLDER">
<Icon Id="MyAppShortCutIcon" SourceFile="Consensus_128.ico"/>
</Shortcut>

<Shortcut Id="UninstallProductStartMenu"
Name="Uninstall Consensus Sweeper"
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]"
Description="Uninstalls Consensus Sweeper"

>
<Icon Id="MyAppUninstallShortCutIcon" SourceFile="Consensus_128.ico"/>

</Shortcut>
<RegistryValue Root="HKCU" Key="Software\Vizitech\ConsensusSweeper"
Name="installed" Type="integer" Value="1" KeyPath="yes" />

<RemoveFolder Id="ProgramMenuSubfolder" On="uninstall"/>
<RemoveFolder Id="INSTALLFOLDER" On="uninstall"/>
</Component>
</Directory>
</Directory>

以下是来自 Bootstrapper 项目的 Bundle.wxs 的代码:

    <Bundle Name="Consensus Sweeper" Version="1.0.0.2" 
UpgradeCode="PUT-GUID-HERE"
IconSourceFile="$(var.SolutionDir)Libs\Resources\Consensus_128.ico">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
<bal:WixStandardBootstrapperApplication LicenseFile="License.rtf"
LogoFile="FTB.bmp" LogoSideFile="FTB.bmp" />

</BootstrapperApplicationRef>

<Chain>
<PackageGroupRef Id="NetFx45Web"/>
<MsiPackage Id="MyApplication" SourceFile="$(var.ConsensusSweeper.TargetPath)"
Visible="no">
<MsiProperty Name="ALLUSERS" Value="1"></MsiProperty>

</MsiPackage>
</Chain>
</Bundle>

最佳答案

<Component Id="ApplicationShortcut" Guid="*">
<CreateFolder/>
<Shortcut Id="ApplicationStartMenuShortcut"
Name="Consenus Sweeper" Description="Consensus"/>

<Shortcut Id="UninstallProduct"
Name="Uninstall My Application"
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]"
Description="Uninstalls Consensus Sweeper"/>
<RemoveFolder Id="ProgramMenuSubfolder" On="uninstall"/>
</Component>

同时添加到您的 Feature 元素:

<ComponentRef Id="ApplicationShortcut" />

关于xml - 使用 Wix 从控制面板使用快捷方式卸载 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com