如何使用 WiX 卸载时终止进程

2024-05-17

我正在使用 Wix 创建 .msi 安装文件。 当我卸载应用程序时,它仍然在工作,并且我可以在任务管理器中看到它。

我已经尝试过自定义操作的延迟执行,如 Wix 文档中所述:https://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html https://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html但不幸的是,它不适合我。 我要执行的命令是“taskkill /f /im myProcess.exe”

<Property Id="myProcessKill" Value="taskkill /f /im myProcess.exe"/>
<CustomAction Id="myProcessKill" BinaryKey="WixCA" DllEntry="WixQuietExec"
            Execute="deferred" Return="check" Impersonate="no"/>

<InstallExecuteSequence>
  <Custom Action="myProcessKill" After="InstallValidate"/>
</InstallExecuteSequence>

这使得我的 msi 文件在安装过程中出现错误。 如果我将 Return="check" 更改为 Return="ignore",msi 会完成安装,但在卸载时不会终止我的进程。 上面的代码有什么问题吗?或者有没有其他方法可以在卸载时终止我的进程? 提前致谢


也许尝试:WiX 关闭应用程序元素 https://stackoverflow.com/a/49786437/129130。在尝试其他任何操作之前,我会先尝试一下,以避免对任何二进制文件的依赖。在 github.com 上找到了这个示例 https://github.com/SimonAntony/windowsmonitor/blob/274ce70eb3ab54fa9015447d4b44ffa6e05eab51/WindowsMonitorSetup/Setup.wxs(未经测试)。

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

如何使用 WiX 卸载时终止进程 的相关文章

  • 用于配置编辑的 wix 自定义对话框

    你好 我正在尝试使用 wix v3 为我的应用程序设置 msi 我对这项任务有疑问 我需要一个用户输入 该输入将存储在我的应用程序的配置文件中 例如 我需要一个用于 sql 连接字符串的对话框 并且用户输入将写入应用程序配置文件中 我尝试用
  • 如何在 WIX 中引用用户的主目录

    我正在为 SDK 创建一个安装程序 其中包括由最终用户编译的源代码 我希望我的 Wix 安装程序默认将其放入用户的主目录中 但我找不到要使用的正确属性名称 您还可以参考HOMEPATH环境变量与 HOMEPATH 有关用于属性的语法的更多详
  • 在每台计算机安装中删除 HKCU 下的注册表项

    我使用 WiX 3 6 构建了一个 perMachine 安装程序来安装我尚未开发的软件 不幸的是 该软件在执行期间在 HKCU 下创建了一些注册表项 卸载时 还应删除自行创建的密钥 移除这些钥匙似乎并不那么容易 我正在与 ICE57 和
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • WIX 目标文件由 LFN 系统上的两个不同组件安装在 [ProgramFilesFolder] 中:这会破坏组件引用计数

    我正在使用 WIX 通过 TFS MSBuild 生成 msi 破坏构建的错误 不仅仅是警告 是 ICE30 The target file eiycriw9 exe MyApp exe is installed in ProgramFil
  • MSI 安装程序,64 位操作系统,写入 \windows\system32\inetsrv 文件夹

    在 Windows Server 2008 64 位上 我需要一个 msi 安装程序文件来将一些文件写入 windows system32 inetsrv 文件夹 这些文件是一些 XML 架构验证文件 C XmlReaderSettings
  • 在 WiX 文件中,Name="SourceDir" 指的是什么?

    WiX 文件似乎总是包含这一行
  • 如何预设属性中未定义的 MSI SecureCustomProperties 以允许静默安装?

    特定供应商的 MSI 通常通过 EXE 包装器安装 但我尝试通过 GPO 使用静默安装进行部署 我正在努力预设 SecureCustomProperties 供应商记录了可以传递给 EXE 包装器的大写命令行选项 我假设它会将它们传递给 M
  • WiX:数字签名 BootStrapper 项目

    我有一个项目 我为其构建了 WiX msi 文件 我还有一个 WiX 引导程序 exe 文件 用于检查 C 2005 是否存在 如果未找到则安装它 然后安装 msi 软件包 我的项目包括作为 msm 文件的 Crystal Reports
  • 创建新用户并将其添加到管理员时出现权限错误

    我用 WiX 3 8 创建了一个设置项目 我想在其中创建一个新用户并将其添加到管理员组 但每次我的设置达到这一点时 我都会因为权限不足而收到错误 这有点奇怪 因为我的用户是虚拟机的管理员 我在虚拟机上测试设置 我能做些什么 这是 WXS 文
  • Wix 为整个树生成单个组件 id

    我是一个几乎没有 wix 经验的人 我正在努力支持 Windows 以及我负责的组件 我正在尝试为我的产品生成的一组文件创建合并模块 这些文件存在于许多子目录中 我想知道如何为整个树中的所有文件创建一个组件 ID 我不担心小的升级 因为那是
  • 如何在 C# 中找到已安装应用程序的升级代码?

    我正在使用 Windows Installer API 的 C 包装器WIX 工具集 http wixtoolset org 我用ProductInstallation类来获取有关已安装产品的信息 例如产品代码和产品名称 例如 产品名称 我
  • WiX Installer:获取正在升级的产品版本

    在从版本 X 到版本 Y 的主要升级过程中 我需要一个属性 变量来表明版本 X 正在升级 当使用 WiX Installer 构建的安装程序对产品进行主要升级时 是否有办法获取正在升级的版本号 假设您使用 WiX Majorupgrade
  • Wix 安装结束后添加多个复选框

    我的 C 应用程序有一个设置 在设置结束时 我添加了一个建议启动应用程序的复选框 效果很好 但我无法添加第二个复选框来提议启动可选安装程序 有我的代码
  • 如何在 MSBuild 中创建新属性并在 WIX 中引用它

    我们需要创建一个属性来指示我们的软件版本 然后我们想在我们的 WIX 项目中使用它 即在 wxs 文件中引用它 我们不想在 wxs 文件中定义它 因为我们希望 MSBuild 也根据此版本号重命名输出文件 PropertyGroup 中的常
  • WiX 自定义操作项目 - BadImageFormatException

    我正在开发我的第一个自定义操作 但无法加载生成的 CA dll 文件 这是最简单的过程和结果 我创建了一个自定义操作项目并保留所有默认值 该类看起来像这样 using Microsoft Deployment WindowsInstalle
  • WiX:如何立即重新启动explorer.exe?

    我是软件打包方面的初学者 我正在使用 cpack Wix 我试图找到有关的有用信息或良好文档util 重启资源 但找不到我的问题的任何答案 Issue 我必须安装一个 ShellExtension 它需要在设置一些注册表值后重新启动 exp
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知
  • WIX 捆绑包创建

    我尝试创建一个包含 exe 的 MSI 使用 WIX 中的捆绑选项 这样做时出现错误 有人可以帮我解决这个问题吗 下面是代码
  • 用于检查和安装先决条件的安装项目与引导程序项目

    这是我的情况 我创建了一个普通的 WiX 安装项目 然后我尝试检查一些先决条件 例如是否安装了 NET 框架 我似乎无法从 WiX 安装项目中执行此操作 所以我创造 WiX Bootstrapper 项目 我能够检查并安装它们 先决条件 我

随机推荐

  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • FakeAsync/tick (Async/whenStable) 与 detectorChanges()

    您能帮我区分这两件事吗 根据我的理解 如果你只使用 observable 你可以使用 detectorChanges 因此 您可以直接更改组件属性或监视服务调用并返回可观察的值 然后调用 detectorChanges 更改将在 html
  • Visual Studio Online 中的时间跟踪

    有没有办法测量 Visual Studio Online 中用例或任务所花费的时间 我希望将所有内容保存在一个地方 Visual Studio Online 就是这种情况 并从那里能够生成报告 例如每个用户的每月时间跟踪报告和反映实际工作时
  • 以一定时间间隔连续重复运行 JavaScript 函数

    这是我的第一个问题 希望您尽快回答 我想要代码连续重复一个函数 我尝试了一些代码 但没有成功 我尝试了这段代码 我想在一段时间后重复这个功能 我努力了setInterval and setTimeout 但是 我还没有收到结果 这将重复该任
  • 同步调用BackgroundWorker

    我想同步调用后台工作者 我希望当后台工作程序完成执行时结束代码的执行 我的BackgroundWorker代码在这里 BackgroundWorker worker new BackgroundWorker worker DoWork Do
  • 是否可以使用 Flying Saucer (XHTML-Renderer) 将 css 解析为类路径资源?

    我正在尝试将资源打包到 jar 中 但我无法让 Flying Saucer 在类路径上找到 css 我无法轻松构建 URL 来无缝解决此问题 https stackoverflow com questions 861500 url to l
  • 在文本视图滚动之前无法看到 UITextView 中的文本

    我的应用程序中有一堆文本视图 由于某种原因 无论我以编程方式 来自互联网 还是通过界面生成器 硬编码 设置 UITextView 文本 无论我做什么 当我在测试时转到该文本视图时它都是空白的 但当我滚动它的那一刻 所有文本就突然出现了 只是
  • PHP7构造函数类名

    我有一个 Laravel 4 2 应用程序 它可以与 PHP5 一起使用 没有任何问题 由于我安装了一个运行 PHP7 的新 vagrant box 一旦我运行一个模型 其中函数名称与类名称 关系函数 相同 就会出现错误 如下所示
  • Django all-auth:如何禁用通过 Google 自动登录

    我正在使用 django allauth 包通过 Google API 让用户登录到我的 Django 应用程序 我的问题是 当用户通过外部 Google 登录页面成功登录时 每次他注销并想要再次登录时 django allauth 都会自
  • 使用带有终结器的 C++/CLI 定义类时 C# 中的内存泄漏

    当我在 C CLI DLL 中实现一个类时 public ref class DummyClass protected DummyClass some dummy code std cout lt lt hello lt lt std en
  • Web 表单中的 IRouteHandler:路由需要 HttpContext.User 的请求

    我正在尝试向 Asp Net Web Forms 应用程序添加一个非常基本的路由 在 IIS 7 下运行 集成模式 http mydomain com foo http mydomain com foo 我想显示动态页面的结果 http m
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 实体框架:从模型生成数据库从模型存储中删除存储过程

    我正在使用带有 EF 4 模型的存储过程 为了实现这一目标 我将执行以下步骤 我通过从数据库更新并选择它来将存储过程添加到我的模型存储中 添加了函数导入以指向存储过程 存储过程返回连接多个表等的查询结果 因此在 返回集合 我指定的区域复合型
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • 如何使用 WiX 卸载时终止进程

    我正在使用 Wix 创建 msi 安装文件 当我卸载应用程序时 它仍然在工作 并且我可以在任务管理器中看到它 我已经尝试过自定义操作的延迟执行 如 Wix 文档中所述 https wixtoolset org documentation m