我已经为 MyProgram 创建了一个安装程序,但它创建的卸载快捷方式留下了空文件夹

2024-03-15

我使用 Visual Studio 安装程序(Visual Studio 安装项目)为 MyProgram 创建了一个安装程序。它称为“MyProgram Setup.msi”。它可以很好地安装程序,如果使用以下命令卸载它添加/删除程序控制面板然后所有内容都会被删除。

问题是我想在名为“Uninstall MyProgram”的程序快捷方式下添加“用户程序菜单”的快捷方式。我尝试过以三种不同的方式做到这一点所有 3 种方式如果使用该快捷方式卸载 MyProgram,则卸载将留下2个空文件夹(“...Program Files\MyCompany\”和“...Program Files\MyCompany\MyProgram\”)。

以下是我尝试创建卸载程序快捷方式的 3 种方法:

1) 批处理或脚本文件的快捷方式

卸载MyProgram.bat:

@ECHO OFF
msiexec /uninstall {MyGUID}

卸载MyProgram.vbs:

Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("START /B msiexec /uninstall {MyGUID}")
Set objShell = Nothing

2)使用Orca.exe编辑MSI文件

我通过本指南找到了如何做到这一点:http://www.codeproject.com/KB/install/MSIShortcuts.aspx http://www.codeproject.com/KB/install/MSIShortcuts.aspx

我将快捷方式条目添加到快捷方式表中。卸载成功,但使用此快捷方式时仍然留下 2 个空文件夹。

3) 来自 MyProgram.exe 中的代码

我修改了 MyProgram.exe 以采用“/uninstall”命令行参数来运行“msiexec.exe /uninstall {MyGUID}”并自行退出。与此解决方案类似:http://www.codeproject.com/KB/install/DeployUninstall.aspx http://www.codeproject.com/KB/install/DeployUninstall.aspx

这些尝试都没有创建可以卸载程序及其基本文件夹的快捷方式。我不想切换到其他安装程序产品,例如 Inno Setup、NSIS 或 WiX。


如果出于某种原因手动运行msiexec /x {MyGUID}没有删除所有文件夹,那么这是您的设置或您在应用程序中执行的操作的问题。

有关使用 WiX 创建卸载快捷方式的更多信息,请查看这篇博文 http://robmensching.com/blog/posts/2007/4/27/How-to-create-an-uninstall-shortcut-and-pass-all-the其中涉及相当多的细节。根据博客文章中显示的信息,您应该能够弄清楚如何坚​​持使用现有技术并使用您提到的 (2) 方法的一些变体。

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

我已经为 MyProgram 创建了一个安装程序,但它创建的卸载快捷方式留下了空文件夹 的相关文章

  • Robocopy 将文件复制到远程计算机

    我正在尝试编写一个 robocopy 命令将文件从本地计算机复制到任何一台部署服务器 ROBOCOPY MyService bin release remote computer C services myservice MIR 我收到这个
  • Heroku 中没有运行 Django 的 Web 进程

    我试图在heroku中部署我的应用程序 但是当我最终尝试在heroku中运行我的应用程序时 我在浏览器中看到了这样的内容 Application Error An error occurred in the application and
  • 使用 Capistrano 3 部署 git 子模块

    我的项目存储库包含 Wordpress 作为 git 子模块 通过 Capistrano 3 部署时 子模块目录是空的 project wordpress images 我正在使用 git 和 deploy via remote cache
  • 部署应用程序时无需取消部署前一个应用程序并且无需停机?

    我在 Web 应用程序中使用 Glassfish Java 和 JSP over MySQL 许多在线用户使用此网络应用程序 该网站不应关闭 当我想要部署一个新的 war 文件时 我应该在服务器上为我的应用程序取消部署并部署新的战争文件 我
  • 在远程 Tomcat 上自动部署 Java 应用程序

    我希望能够自动将 Java 应用程序部署到 tomcat 服务器 现在的情况 正在 Eclipse 中开发 Java 项目 Tomcat 服务器在另一台机器上运行 提供该项目的 WAR 文件 我的目标 可以轻松编译项目并将其部署到远程 To
  • 部署程序集:当前显示的页面包含无效值

    我从 Sourceforge 导入了一个 Java Web 应用程序 我花了三个工作周的时间来消除项目名称和包上附加的所有红叉 但现在我无法使该应用程序在我的 Eclipse 和 tomcat6 开发环境上运行 在项目属性中 当我尝试设置部
  • 在 WildFly 10 中添加 jar 作为部署

    有没有办法 我们可以将 jar 部署为库 部署WildFly 10就像我们可以做到的那样weblogic服务器 或者我们可以将 jar 放在服务器的任何文件夹中并将这些依赖项定义为provided 我得到了什么部署方式jars on Wil
  • 在 github 推送上将静态站点部署到 s3 的最佳策略? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想自动将我们的网站部署到 AWS S3 我已经编写了一个节点脚本来自动构建和上传网站 但我希望每当m
  • 为什么 Yeoman 构建时没有字形图标?

    我正在研究一个webapp发电机及运行后grunt我有一个可以正确显示字体的功能应用程序 然而 当我检查dist 目录我没有得到任何字体文件 文档指出grunt命令build the application for deployment 但
  • Android 应用程序不在主屏幕上创建快捷方式图标(从 Play 商店下载)

    从Play商店下载应用程序后 它不会在主屏幕上创建快捷方式图标 它在应用程序抽屉中创建图标 虽然这个东西在大多数设备上运行良好 但对于某些设备 应用程序未创建快捷方式 我检查过 a Play 商店设置和自动添加小部件已标记 b 启动器设置自
  • Java webapp部署:爆炸还是不爆炸?

    一个非常简单的问题 我有一个 war 40MB 文件要在 JBoss 上运行 部署的最佳实践是什么 war 文件是否应该以分解格式部署 或不 我问是因为如果它爆炸了 那么我可以选择随时更新我的 属性文件 并且不需要每次更改属性文件时都进行新
  • Tkinter 绑定 Mac OS“command+q”

    当我按 Command q 时 我试图 停止 根窗口退出 但这是不可能的 其他快捷键在我的 Mac 操作系统上有效 即使在 Windows Linux 中 Alt F4 绑定也可以 捕获 但在 Mac 操作系统中对我来说是不可能的 有任何想
  • 如何从 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 然后我
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 通过 ARM 模板将现有混合连接链接到 azure Web 应用程序

    我在天蓝色中有一个资源组 其中包含一个包含混合连接的中继 我正在尝试部署另一个包含 Web 应用程序的资源组 该应用程序应链接其他资源组中的现有混合连接 在天蓝色门户中执行此任务很简单 但由于我想在 ARM 模板部署期间运行 完整模式 因此
  • 如何使 Rails 3 资源预编译速度更快?

    我有一个正在运行的 Rails 3 2 1 应用程序 我正在通过 Capistrano 进行部署deploy assets它运行deploy assets precompile task 一切工作都很好 除了编译本身非常慢 我没有那么多 C
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • VS2010中如何切换头文件和实现?

    Visual Studio 2010 中是否有允许在标头 C C h 文件 和实现 C C cpp 文件 之间切换的键盘快捷键或免费插件 MS added this feature in Visual Studio 2013 It s a
  • 如何在 Kubernetes 中按特定顺序配置 Pod 初始化?

    我想知道如何按特定顺序开始部署 我知道initContainers但这对我不起作用 我有一个巨大的平台 有大约 20 个部署和 5 个有状态集 每个都有自己的服务 环境变量 卷 水平自动缩放器等 所以不可能 或者我不知道如何 在另一个中定义
  • 有没有办法通过 WiFi 部署/调试 Cordova Android Ionic 应用程序? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 这是一个双胞胎this https stackoverflow com questions 46596236 is there a w

随机推荐

  • 计算列中的位数

    这是我的代码 select len cast code as float code from tbl1 where code is not null 这是输出 我想要代码栏中的位数 我不明白为什么最后一个算12而不是8 将其投射为int反而
  • 烦人的 python tesseract 错误打开数据文件时出错 ./tessdata/eng.traineddata

    我遇到了这个错误 这让我对 tesseract 的 python 包装器有点疯狂 这是一个名为 tesseract 的 python 模块 这是我尝试运行的 python 代码 img cv2 imread image 0 api tess
  • Android 12 闪屏 API 定制

    自从 Android 在 Android 12 中发布了新的 Splash Screen API 以来 许多应用程序都存在重复的启动屏幕 缺乏自定义等问题 现在 可以设置背景颜色和中间的图标 但是可以自定义更多吗 由于现在我们只能使用单色背
  • 在为 iPhone 开发时,您遇到的最讨厌的错误是什么? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 任何语言都有其著名且令人痛苦的错误
  • QPSQL 驱动程序未加载 Qt

    当我想添加数据库时遇到一些麻烦 dataBase QSqlDatabase addDatabase QPSQL 调用此方法后出现错误 QSqlDatabase QPSQL driver not loaded QSqlDatabase ava
  • 使用 Jackson 进行不可变/多态 POJO <-> JSON 序列化

    我正在尝试使用 Jackson 2 1 4 将不可变的 POJO 与 JSON 进行序列化 而无需编写自定义序列化程序并使用尽可能少的注释 我还希望避免仅仅为了满足 Jackson 库而添加不必要的 getter 或默认构造函数 我现在陷入
  • 我可以说构造函数是方法吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道我是否可以说构造函数是一个特殊情况method 你可以说什么 是否有人会不同意你的观点取决于具体情况 一些语言社区和标准以这种方式定义事
  • 如何在 Markdown 文件中输入 html 而不渲染?

    我想在 markdown 文件中输入以下句子 她说 h1 很大 我可以在 StackOverflow 中使用 h1 周围的三个反引号来完成此操作 但这不适用于 md 文件 我还尝试过单反引号 单引号 双引号 主题标签 间距 code h1
  • 这些“\e6##”字符是什么意思?

    https www keysurgical com assets scss objectsCustom icons scss https www keysurgical com assets scss objectsCustom icons
  • 在 Rcpp 中使用 arma::cube 制作 3d 数组显示立方体错误

    我正在为吉布斯采样制作 Rcpp 代码 在代码中 我首先想要创建一个 3 维数组 其中行数 迭代次数 500 列数 参数数 4 切片数 链数 3 我是这样写的 include
  • 通过实体框架创建记录时未插入数据库默认值

    我在 sql server 2008 中有一个登录记录表 其列结构如下 LoginId int identity UserId int LoginDateTime Allow nulls false default value getdat
  • Perl:if(列表中的元素)

    我正在寻找列表中是否存在某个元素 在Python中有一个in关键字 我会做类似的事情 if element in list doTask Perl 中是否有等效的东西 而无需手动迭代整个列表 UPDATE smartmatch 系列功能现已
  • AngularJs - .net MVC WebApi 身份验证示例

    我有一个 Net MVC WebApi 应用程序 并尝试专门用 Angularjs 编写前端 我可以通过 json 获取数据并对其进行操作 但我现在需要保护数据并将 Base64 身份验证添加到服务器上的标头中 当我浏览到一些 net 视图
  • 使用 C# ASP.NET MVC Identity 以编程方式创建用户

    我正在尝试以编程方式将用户添加到 ASP NET MVC Identity 我遇到的错误是 UserManager threw an exception of type System NullReferenceException 此函数是通
  • 使用 powershell 刷新 Excel 工作表

    我在一个名为 test 的文件夹中有 10 个不同的 Excel 工作表 我想使用 Windows Power shell 脚本刷新数据连接和数据透视表中的数据 该过程使用 for 每个循环打开每个文件 然后在文件中选择 powerpivo
  • 如何使用 UIAccessibility 协议将焦点捕获在 iOS 上的模式弹出窗口中?

    当用户单击 iOS 上的按钮时 我将启动自定义弹出窗口 在 iPhone 上使用画外音时 如何确保焦点保持在自定义弹出窗口内 出于可访问性原因 目前 当我向右滑动时 焦点落在父容器中的元素上 如果您的目标是 iOS gt 5 0 那么有一个
  • .NET 中 IIdentity 和 IPrincipal 背后的想法是什么

    那么 两者存在的目的是什么 IIdentity and IPrincipal 而不是一些IIdentityMergedWithPrincipal 什么时候在同一个类中实现两者还不够 另外 为了理解目的 我想知道这个概念来自哪里 它起源于 N
  • Ruby `send` 与 `call` 方法

    我正在阅读一篇有关 Ruby 1 9 的文章 有很多用途call方法与Object 但在最新版本的 Ruby 中 我得到了这个 BasicObject methods include send gt true BasicObject met
  • C# WPF 属性网格文件浏览器

    我有一个与公共类属性连接的属性网格 正如我在许多解决方案中看到的那样 通过添加 EditorAttribute 我应该能够使用文件浏览器 public class properties public properties PartProgr
  • 我已经为 MyProgram 创建了一个安装程序,但它创建的卸载快捷方式留下了空文件夹

    我使用 Visual Studio 安装程序 Visual Studio 安装项目 为 MyProgram 创建了一个安装程序 它称为 MyProgram Setup msi 它可以很好地安装程序 如果使用以下命令卸载它添加 删除程序控制面