【发布时间】:2018-07-11 14:17:51
【问题描述】:
我使用 WixSharp 为我的应用程序创建了一个简单的引导程序。
namespace TestBootstrapper
{
class Program
{
static void Main()
{
var package = new MsiPackage("../testmsi.msi")
{
DisplayInternalUI = true,
Id = "MyId",
Compressed = true,
Visible = true
};
var bootstrapper = new Bundle("MyTestInstaller", package)
{
Version = new Version("1.0.0.0"),
UpgradeCode = new Guid("1FCC927B-7BB0-4FB0-B81E-2D87012E470B"),
PreserveTempFiles = true,
DisableModify = "yes",
DisableRemove = true
};
bootstrapper.Build("Installer.exe");
}
}
}
我以管理员身份登录并安装了应用程序(使用 Installer.exe),安装期间事件查看器中没有错误。当我单击快捷方式时,应用程序按预期运行。
如果我以标准用户或管理员身份运行testmsi.msi,它安装时没有任何错误,如果我点击快捷方式,应用程序将按预期运行。
我以标准用户身份登录并安装了应用程序(使用Installer.exe)。安装期间事件查看器中没有错误。但是当我点击快捷方式安装程序再次运行。
那么,为什么安装程序会运行以及如何防止这种行为?
【问题讨论】:
-
安装程序运行是因为您创建了一个advertised shortcut。您应该寻找一种方法来创建一个常规的、非广告的快捷方式。不幸的是,我对 WiX# 一无所知,所以我不能告诉你如何去做。 Here is a tutorial to create a non-advertised shortcut using pure WiX code.
-
但是如果我从 .msi 安装应用程序(作为管理员或标准用户)并单击应用程序运行的快捷方式。我尝试使用 InnoSetup 和 NSIS 来创建引导程序,但我有同样的行为。
标签: wix windows-installer installation bootstrapper wixsharp