Wix Burn 3.10.3 & Windows 10:从程序和功能中卸载不会提升
Wix Burn 3.10.3 & Windows 10: Uninstall from Programs and Features doesn't Elevate
我创建了一个 burn bundle 安装程序,它安装了几个 MSI,都是 perMachine。该捆绑包确实在安装时正确提升。如果我 运行 带有 /uninstall 命令行的 bundle exe,它会在卸载时提升。如果我从 Windows 10 的应用程序和功能 window 卸载,它 得到 提升(这是因为无论您的捆绑设置如何,应用程序和功能似乎都会在这里盲目提升) .
但是,如果我从控制面板的 "Programs and Features" 对话框卸载,卸载不会提升(即使日志似乎表明它提升)。有问题的安装程序确实需要提升才能执行某些操作(例如彻底停止服务)。
Bundle.wxs 片段:
<Bundle Name="Test Bundle"
Version="1.0.0.0"
Manufacturer="My Company, Inc."
Copyright="Copyright 2016 My Company, Inc."
IconSourceFile="Resources\Icons.ico"
DisableModify="yes"
UpgradeCode="$(var.UpgradeCode)">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkSidebarLicense">
<bal:WixStandardBootstrapperApplication
LogoFile="Resources/logo.png"
LogoSideFile="Resources/logoside.png"
ThemeFile="Resources/HyperlinkSidebarTheme.xml"
LocalizationFile="Resources/HyperlinkTheme.wxl"
LicenseUrl="" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="MyMsi.msi"
SourceFile="$(var.SolutionDir)Installer\MyMsi.msi"
Compressed="yes"
ForcePerMachine="yes"
Vital="yes">
</MsiPackage>
<MsiPackage Id="MyOtherMsi.msi"
SourceFile="$(var.SolutionDir)Installer\MyOtherMsi.msi"
Compressed="yes"
ForcePerMachine="yes"
Vital="yes">
</MsiPackage>
</Chain>
</Bundle>
我已将两个 MsiPackage 设置为 "ForcePerMachine" 以确保捆绑提升。 MSI 的两个包元素都设置了 InstallScope="perMachine"。如果我自己安装 MSI,从程序和功能中卸载时它们都会提升。
我有点不知所措。
好的,EXE 显然是自动从 ARP 运行 提升的(而 MSI 不是。这在 MSI 的卸载程序日志中得到确认:
MSI (s) (9C:F4) [17:20:38:470]: MSI_LUA: 不需要凭据提示,用户是管理员
我创建了一个 burn bundle 安装程序,它安装了几个 MSI,都是 perMachine。该捆绑包确实在安装时正确提升。如果我 运行 带有 /uninstall 命令行的 bundle exe,它会在卸载时提升。如果我从 Windows 10 的应用程序和功能 window 卸载,它 得到 提升(这是因为无论您的捆绑设置如何,应用程序和功能似乎都会在这里盲目提升) .
但是,如果我从控制面板的 "Programs and Features" 对话框卸载,卸载不会提升(即使日志似乎表明它提升)。有问题的安装程序确实需要提升才能执行某些操作(例如彻底停止服务)。
Bundle.wxs 片段:
<Bundle Name="Test Bundle"
Version="1.0.0.0"
Manufacturer="My Company, Inc."
Copyright="Copyright 2016 My Company, Inc."
IconSourceFile="Resources\Icons.ico"
DisableModify="yes"
UpgradeCode="$(var.UpgradeCode)">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkSidebarLicense">
<bal:WixStandardBootstrapperApplication
LogoFile="Resources/logo.png"
LogoSideFile="Resources/logoside.png"
ThemeFile="Resources/HyperlinkSidebarTheme.xml"
LocalizationFile="Resources/HyperlinkTheme.wxl"
LicenseUrl="" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="MyMsi.msi"
SourceFile="$(var.SolutionDir)Installer\MyMsi.msi"
Compressed="yes"
ForcePerMachine="yes"
Vital="yes">
</MsiPackage>
<MsiPackage Id="MyOtherMsi.msi"
SourceFile="$(var.SolutionDir)Installer\MyOtherMsi.msi"
Compressed="yes"
ForcePerMachine="yes"
Vital="yes">
</MsiPackage>
</Chain>
</Bundle>
我已将两个 MsiPackage 设置为 "ForcePerMachine" 以确保捆绑提升。 MSI 的两个包元素都设置了 InstallScope="perMachine"。如果我自己安装 MSI,从程序和功能中卸载时它们都会提升。
我有点不知所措。
好的,EXE 显然是自动从 ARP 运行 提升的(而 MSI 不是。这在 MSI 的卸载程序日志中得到确认:
MSI (s) (9C:F4) [17:20:38:470]: MSI_LUA: 不需要凭据提示,用户是管理员