Wix 重新启动计算机后出现的引导程序窗口

Wix 重新启动计算机后出现的引导程序窗口,wix,bootstrapper,Wix,Bootstrapper,这种行为是如何设定的?我找不到如何在重新启动时禁用引导程序。我将安装程序,关闭计算机,第二天,当我启动计算机时,会出现引导程序窗口。即使它将卸载引导程序。当我在测试中多次安装它时,碰巧后来我有几个窗口。但是这个弹出窗口并不总是发生,我不知道它取决于什么 编辑 查看注册表后的日志开始: 会话开始,注册密钥: 软件\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4}, 选项:0x4,禁用恢复

这种行为是如何设定的?我找不到如何在重新启动时禁用引导程序。我将安装程序,关闭计算机,第二天,当我启动计算机时,会出现引导程序窗口。即使它将卸载引导程序。当我在测试中多次安装它时,碰巧后来我有几个窗口。但是这个弹出窗口并不总是发生,我不知道它取决于什么

编辑

查看注册表后的日志开始:

会话开始,注册密钥: 软件\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4}, 选项:0x4,禁用恢复:不注册捆绑依赖项 提供程序:{bf97c7e8-2ef4-4439-9504-96a7736c10f4},版本:1.0.120.0 正在更新会话,注册密钥: 软件\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4}, 恢复:激活,重新启动:否,禁用恢复:否

您会看到
禁用resume:No
,我找不到关于它的任何信息,但它可能会导致应用程序在重新启动后运行

Edit2

这是因为引导程序添加了寄存器HKEY\U LOCAL\U MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce


但无法找到如何关闭它。

最终,原因是为引导程序添加RunOnce注册表。据开发者称,互联网上写着,这是对安装成功的确认。但在我的情况下,这对我来说是不必要的,因为我自己做配置后测试。为了防止这种情况,我连接到OnRegisterComplete事件,并删除包含安装程序名称的所有寄存器

但是,这需要以管理权限运行引导程序

    private void OnRegisterComplete(object sender, RegisterCompleteEventArgs e)
    {
        try
        {
            string registryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce";
            RegistryKey key32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
            RegistryKey key = key32.OpenSubKey(registryKey, true);
            if (key != null)
            {
                var names = key.GetValueNames();
                for (int i = 0; i < names.Length; i++)
                {
                    var value = key.GetValue(names[i]);
                    if (value.ToString().Contains("NameInstaller.exe"))
                        key.DeleteValue(names[i]);
                }
                key.Close();
            }
        }
        catch (Exception ex)
        {
        }
    }
RegisterComplete上的私有void(对象发送方,RegisterCompleteEventArgs e)
{
尝试
{
字符串注册表项=@“软件\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce”;
RegistryKey key32=RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry32);
注册表项key=key32.OpenSubKey(注册表项,true);
if(key!=null)
{
var name=key.GetValueNames();
for(int i=0;i