为什么安装程序在单击快捷方式后运行?

2023-12-26

我使用 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)。安装过程中事件查看器中没有错误。但是当我单击快捷方式安装程序时,它会再次运行。

那么,为什么安装程序会运行以及如何防止这种行为?


这是一次修复,效果可能好也可能坏,具体取决于重新安装的内容。应用程序事件日志应包含 MsiInstaller 条目,说明正在修复的内容。这并不一定是一件需要预防的坏事。

假设您进行了每台计算机安装,例如,如果您从 MSI 将文件安装到用户的应用程序数据文件夹中,然后以另一个用户身份登录并运行该应用程序,则该用户的文件显然丢失了。因此,Windows Installer 将为应用程序的缺失部分进行安装。该文件可能是系统的所有用户都需要的,是吗? Windows 假定如果您将文件(或注册表项)安装到用户配置文件位置,则每个登录的人都需要此文件,因此当其他用户登录并使用快捷方式时,它会通过“修复”安装。

还有其他一些修复效果不太好的情况。如果您执行某些操作来删除已安装的文件,Windows 将尝试恢复它。如果您执行按用户安装,但随后以其他用户身份登录并尝试使用不符合产品预期用途的应用程序 - 每台计算机的安装程序即可执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么安装程序在单击快捷方式后运行? 的相关文章

  • 使用帮助库管理器和 WiX 安装帮助

    我试图通过使用 WiX 运行 Sandcastle 帮助文件生成器在构建我的 Sandcastle 项目后创建的 HelpLibraryManagerLauncher 将我自己的帮助文件添加到 Visual Studio 2010 的帮助库
  • 如何在 wix .wxs 文件中指定

    我想在 Wix 安装程序的 wix wxs 文件中将属性指定为受限属性
  • 如何在 El Capitan (OS X 10.11) 中设置 Android Studio?

    全新安装 El Capitan 10 11 尝试安装 Android Studio 版本 1 21 Error Android Studio was unable to find a valid JVM Please download it
  • Emacs 23.1.50.1 在 Windows XP 上随机挂起 6-8 秒

    我的 Windows XP 机器上有 EmacsW32 23 1 50 1 emacs 运行 它随机挂起 5 到 8 秒 非常令人沮丧 有人有解决办法吗 我什至尝试使用来自 gnu ftp 站点的 emacs win32 二进制文件 23
  • 使用C#在SQL Server上执行sql文件

    我有很多程序 视图 函数等文件 我想在 SQL Server 2005 2008 上的适当数据库中执行这些文件 创建组件 还有一点是我想使用 C 来执行它们 另一点需要提及的是 我希望应用程序也可以在远程 SQL Server 上执行此文件
  • WiX - 通过检查修订来防止降级

    我正在寻找一种方法来防止我的应用程序降级 但 问题 是 我必须检查修订号 例如 安装 1 0 0 1 时应该可以安装 1 0 0 2 但安装 1 0 0 2 时不应该安装 1 0 0 1 我知道 Element MajorUpgrade 仅
  • “此应用程序只能在应用程序容器的上下文中运行。” - Visual Studio 2015 开发新手

    我有点绝望了 我几个小时以来一直在尝试解决以下问题 我开发了一个应用程序 现在尝试使用 Visual Studio 2015 的安装向导扩展来安装 一切都在构建或 没有错误 但是当我打开应用程序时 它突出显示它只能在应用程序容器的上下文中打
  • 即使给出了公钥,Gitosis 也需要密码

    我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题 http wiki archlinux org index php Setting Up Git ACL Using gitosis http wiki archlin
  • Mac 10.8.3 上的 fltk 安装

    我正在挣扎fltk在我的 Mac 上安装 我想在Xcode 4 下载文件并解压缩后 尝试按照说明操作 2 3 Configuring FLTK Stay in your FLTK source code directory Type aut
  • 会话“app”:安装 APK 时出错

    尝试按照说明在真实设备上安装应用程序 http developer android com tools device html http developer android com tools device html 最后 Android
  • 如何在 Windows 上的 Python 2.7 上安装 Tensorflow?

    我尝试通过 pip 安装 TensorFlow pip install tensorflow 但是得到这个错误 找不到满足tensorflow要求的版本 来自版本 这个问题有解决办法吗 我还是想通过pip安装 如果您只因为 Keras 而需
  • Wix:动态添加功能

    我们正在使用 Wix 为我们的软件构建 msi 我们有一些要在目标机器上实现的组件 插件 每个客户端的插件都不同 我们想要做的是创建一个标准构建并修改 msi 包中的功能列表 有没有办法通过自定义操作动态更改功能列表 例如 从自定义操作中读
  • 使用“Any CPU”而不是“X86”编译wix项目

    当我编译一个wix项目 并且wix通过MSbuild启动所有现有项目的编译时 我可以使用 任何CPU 而不是 X86 或 64位 吗 如果没有 我如何使用 任何CPU 编译项目 如果您的问题是是否可以编译 WIXPROJAny CPU那么答
  • 如何在 Mac 上安装 Beautiful Soup 模块?

    我读了这篇文章但没有找到解决方案 http docs python org install index html http docs python org install index html 正常 的方法是 访问美丽汤网站 http ww
  • 如何从 Windows 7 PC 上完全卸载 Python 2.7

    从这里安装了Python 2 7 https www python org downloads release python 279 https www python org downloads release python 279 然后我
  • Burn in WiX 3.6 如何将 MSI 文件捆绑到 .exe 中?

    我有兴趣了解 WiX 如何捆绑使用 Burn 创建的 EXE 文件 我知道创建一个自解压 EXE 文件非常简单 我已经完成了一百万次了WinRAR http en wikipedia org wiki WinRAR EXE 文件解压到哪个目
  • 为什么vcredist_x86.exe不能安静安装?

    我需要安静地安装 vcredist x86 exe Microsoft Visual C 2010 Redistributable Package 我在 cmd exe 上输入 vcredist x86 exe q 但是 vcredist
  • 如何生成Mac应用程序的安装包?

    如何为 OS X 二进制文件以及一些配置和脚本文件创建单个安装程序包 最终文件夹应如下所示 任何帮助 将不胜感激 谢谢 如果您希望将各种东西放置在不同的位置 安装程序在这里 文档在那里 支持文件在这里等等 它们也非常适合提供安装体验的可配置
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob

随机推荐

  • 我不断收到类型错误

    好吧 我正在自学 python 类 当我运行代码时 出现以下错误 class Critter object A virtual pet def init self name mood print A new critter has been
  • 使用批处理文件在 Windows 中生成 GUID

    如何在 Windows 中使用命令行运行的批处理文件中生成 GUID Windows SDK 附带了一个名为uuidgen 如果您有 Visual Studio 您将拥有 Windows SDK 并且需要运行Visual Studio 命令
  • WPF - 从 ItemsControl 的 ItemTemplate 内绑定到项目索引?

    有没有办法从 ItemsControl 的 ItemTemplate 中绑定到 ItemIndex 例如
  • 向 Ruby 数组添加回调函数,以便在添加元素时执行某些操作

    我想向 Ruby 数组添加回调函数之类的东西 这样当将元素添加到该数组时 就会调用该函数 我能想到的一件事是重写所有方法 如 有更简单的解决方案吗 以下代码仅调用size changed当数组大小发生更改并且传递数组的新大小时挂钩 a cl
  • 如何为继承的槽定义 S4 原型

    我有一个基类 我们称之为 A 其表示对于许多其他类来说是通用的 因此我定义了其他类 例如 B 来包含这个类 我想设置这些其他类 B 的原型以包含从 A 继承的插槽的默认值 我认为这是很自然的 setClass A representatio
  • SAS 错误消息(致命:在 MISSING 涂片生成期间检测到代码生成错误)

    有谁知道这个错误消息是什么意思 致命 在 MISSING smear 生成期间检测到代码生成错误 它是在连接大约 40 个数据集时发生的 我相信这可能是由于变量太多 大约 217 而达到了内存限制 但最好能得到这一点的确认 日志档案 301
  • jstree 自定义节点标记

    有没有办法拥有自定义标记或向某些节点添加额外的 html 元素 例如 我们想在路径下的所有节点的节点文本后面添加一个箭头 链接 当用户单击该箭头时 打开上下文菜单 我知道可以使用右键单击打开上下文菜单 但要求是在节点后面有一个箭头 并且单击
  • 应用程序退出时关闭模态视图控制器

    我有一个视图控制器 视图 A 当用户按下按钮时呈现模态视图 B 并且视图 B 本身有一个按钮来呈现视图 C 我的问题是 如果用户在视图 B 或如图 C 所示 下次启动应用程序时将出现相同的视图 有没有办法在退出时关闭视图 B 和 C 或在应
  • 如何在网站上预览用户要上传的视频文件(PHP、FiileAPI JS)

    我的意思是 当用户从系统中选择视频文件时 网页已经向他们显示他们想要上传的文件 我已经使用 FileAPI JS 使用图像文件进行预览 我想对视频文件的 FileAPI JS 做同样的事情 所以 它必须在我的客户端内工作 谢谢并感谢您的回答
  • 导入错误:导入 mechanize 时没有名为“_version”的模块

    我通过 pip 安装 mechanize 并在导入模块时收到错误 python Python 3 5 2 default Jun 28 2016 08 46 01 GCC 6 1 1 20160602 on linux Type help
  • 登录后重定向到原始任务

    因此 我想向用户发送电子邮件 其中包含一些链接 您可以单击这些链接来执行操作 但如果用户尚未登录 我希望能够让用户登录 然后将他重定向回他想要达到的目标 我在 application controller rb 中有这些方法 这在 URL
  • strtotime('today') 返回错误的时间?

    我正在尝试创建一个从用户当前日期开始的选择列表 我希望将其设置为 unix 时间戳格式的午夜 这就是我正在做的一切 today strtotime today echo today 这是我的结果 1333144800 即 2012 年 3
  • 在强类型视图中格式化可为 null 的 DateTime 字段

    我的模型中有一个 Person 类 其 BornDate 属性定义为 DisplayName Born Date public DateTime BornDate get set 在我看来 我将此字段用作 td br td 问
  • 阴影 UIview 和 ClipsToBounds

    我想将阴影设置为我的容器 UIView 我用这段代码来实现它 id initWithCoder NSCoder aDecoder self super initWithCoder aDecoder if self gt drop shado
  • 如何将 Visual Studio Code 连接到 Visual Studio Team Services

    我最近下载了 Visual Studio Code 并试图弄清楚如何将编辑器连接到我的 Visual Studio Team Services 项目 有人在这方面取得过成功吗 首先下载 Visual Studio 团队服务 https ma
  • jQuery 中元素在 DOM 中的相对位置

    给定两个 jquery 对象 是否有某种方法可以告诉我哪个在文档树中比另一个 更靠前 换句话说 通过一个文档 p p div p p div p p 是否有一些函数具有这样的行为 p1 isBefore p2 true p3 isBefor
  • “不包含适合入口点的静态‘main’方法”

    我不明白下面的代码有什么问题 当我尝试编译时 我收到消息 不包含适合入口点的静态 main 方法 这是我的代码 using System using System Collections Generic using System Compo
  • 需要使用 PHP 在 Ubuntu 上查找网络接口的 IP 地址

    我需要帮助查找我的计算机在网络上时的 IP 地址 我正在构建一个信息亭类型的系统 该系统将被放置在不同的位置 并且我需要能够使用网络浏览器在本地网络上查找该计算机的 IP 地址 如果我使用 SERVER SERVER ADDR 我通过该计算
  • 在约束依赖于框架的自定义视图中使用自动布局

    我正在编写一个以编程方式初始化的自定义视图 我覆盖updateConstraints添加此视图所需的所有约束 void updateConstraints self superview addConstraint NSLayoutConst
  • 为什么安装程序在单击快捷方式后运行?

    我使用 WixSharp 为我的应用程序创建了一个简单的引导程序 namespace TestBootstrapper class Program static void Main var package new MsiPackage te