【问题标题】:Run solution exe after installtion using installshield使用 installshield 安装后运行解决方案 exe
【发布时间】:2012-05-22 08:08:07
【问题描述】:

我想在使用 InstallShield 安装后运行我的 exe。 InstallShield 正确完成设置,但不运行 exe。

我找到了另一种在启动时添加 exe 的方法,但它在重新启动后运行。 我希望它无需重新启动即可运行。

有可能吗?

【问题讨论】:

  • 这和asp.net有什么关系?
  • 没什么。 EXE 是 C# 应用程序也没关系。已删除标签。它还有助于了解正在使用的 InstallShield 中的版本、版本和项目类型。

标签: asp.net installshield facebook-c#-sdk


【解决方案1】:

您使用的是哪个版本的 InstallShield?另外,您使用的是什么项目类型? (InstallScript、InstallScript MSI、Basic MSI?)

假设 Basic MSI,InstallShield 有一个内置模式来支持这个故事:

1) 点击项目助手选项卡

2) 点击安装面试图标(页面)

3) 对于“您是否要让用户选择在安装完成时启动您的应用程序?

单击“是”

4) 单击浏览按钮选择应作为操作目标的 EXE。

默认情况下,设置完成对话框上的复选框(启动程序)不会被选中。要选择它会自动将属性 LAUNCHPROGRAM 添加到属性表并将其设置为值“1”。

【讨论】:

  • 我按照这些步骤操作并启动了我的应用程序。但是 UI 没有显示。但是,如果我单击桌面上的快捷方式,则会出现 UI。我不知道我缺少什么,因为我是新手。
  • 我猜您的应用程序对工作目录很敏感,并且它是由您的快捷方式提供的。
【解决方案2】:

Christopher Painter 的回答在大多数情况下都对您有用。这些是要采取的初步步骤,但如果您发现这还不够,还有一些额外的细节。例如,skb 报告说这对他不起作用。我发现我在同一条船上(即使我已经建立了十几个其他安装程序来完成这项工作!)。

  1. 按照 Christopher Painter 的说明进行操作。
  2. 单击“安装设计器”选项卡。在“用户界面”中选择“对话框”。
  3. 在“所有对话框”中,展开“SetupCompleteSuccess”,然后选择“行为”。
  4. 选择“确定”按钮控件。然后,选择“事件”。 (查看屏幕底部的事件/订阅/条件)
  5. 您应该有一个“DoAction”事件,其“参数”等于“IS_LAUNCH_MY_PROGRAM_PLEASE”,“条件”为“LAUNCHPROGRAM”。如果没有 - 添加。 “LAUNCHPROGRAM”是指该名称的属性。如果选择了启动复选框,它将具有值 1,因此满足此条件。 IS_LAUNCH_MY_PROGRAM_PLEASE 是指启动的自定义操作。如果需要,您可以在此处更改该 CA 以触发任何自定义操作。我选择不理会它,但用我自己的一个替换 CA。
  6. 打开您的自定义操作列表(行为和逻辑...自定义操作和序列)。您应该在那里找到一个名为 IS_LAUNCH_MY_PROGRAM_PLEASE 的 CA。删除它!
  7. 添加您自己的 IS_LAUNCH_MY_PROGRAM_PLEASE CA。右键单击“自定义操作”(列表标题)并选择所需的 CA 类型 - 或启动向导。如果您将对话框行为保留为默认设置,请务必将其命名为“IS_LAUNCH_MY_PROGRAM_PLEASE”。
  8. 要启动 exe - 工作目录已更改(这是我的应用程序不会出现的原因,显然 skb 也是基于 cmets)选择“新 EXE”...“引用目录的路径”。将“返回处理”更改为“异步(不等待完成)”。注意“MSI 类型号”变为 226。将“工作目录”设置为INSTALLDIR(假设您要启动的程序应该在新程序的目录中)。将“文件名和命令行”设置为[INSTALLDIR]YourApp.exe

【讨论】:

  • 或者,可以将他们的应用程序修复为对工作目录不敏感。
  • 没错……但这并不一定更快更容易。对于启动其他进程的任何东西来说,设置工作目录是一个几乎普遍的特征,以及为什么在 IS 中也有这样的选项,这是有充分理由的。重新设计程序解析相对路径的能力,以安抚安装程序?这似乎倒退了。其他安装程序通常使这变得微不足道。您不应该与安装程序紧密耦合。
  • 我认为让安装程序补丁解决应用程序缺陷是倒退的。让安装程序设置工作目录是紧密耦合的。而且它可能更快更容易,因为提出问题的开发人员可能比他的安装程序更了解他的应用程序。
  • Touché...“缺陷”在这里描述问题有点强。 “限制”或“弱点”更好。我当然不反对让应用程序在任何目录中都能完美运行。有时这有点麻烦,有时您为其他人的程序构建安装程序 - 或者拥有第三方脚本/二进制文件等,您对其零控制。能够设置工作目录很重要。我已经在这里概述了如何操作,只需几分钟。
  • 抱歉,我的词汇量太老了。我说的是“失败”而不是“枢轴”。是的。我在日常工作中与内部团队的方法以及与外部客户的方法可能会有所不同。不过,我会尽量建议他们都做正确的事。作为 .NET 开发人员,我知道可以在此处的代码中做出的各种错误假设以及避免这些假设的最佳实践。一个常见的问题是开发人员不了解 Windows 服务的工作目录是 [SystemFolder]。没有办法在安装程序中解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
相关资源
最近更新 更多