我创建了一个刻录包安装程序,它安装了几个 MSI,都是 perMachine。捆绑包在安装时会正确提升。如果我使用 /uninstall 命令行运行 bundle exe,它会在卸载时提升。如果我从 Windows 10 的“应用程序和功能”窗口卸载,它会被提升(这是因为无论您的捆绑包设置如何,应用程序和功能似乎都在这里盲目地提升)。
但是,如果我从控制面板的“程序和功能”对话框中卸载,卸载将不会提升(即使日志似乎表明它确实如此)。有问题的安装程序确实需要提升才能执行某些操作(例如干净地停止服务)。
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,从程序和功能卸载时它们都会提升。
我在这里有点不知所措。