使用Installer Project安装后无法自动启动程序

时间:2017-04-13 01:55:01

标签: .net vb.net windows-installer

我需要安装程序的帮助。我的安装程序项目安装了我的程序(显然),我的老板希望我在安装完成后自动运行它。我找不到任何办法这样做。是否可以这样做?

2 个答案:

答案 0 :(得分:1)

是的,自动启动安装程序并在安装结束时运行应用程序非常容易。

要开始设置,您需要在一张CD / DVD上设置自动运行。您只需要使用ini格式添加autorun.inf文本文件。下面是一个示例,假设您有一个带有图标的setup.exe。

[autorun]
open=setup.exe 
icon=setup.exe,0
label=My install CD

您可以将图标部分更改为任何图标,例如“icon = my_cool_icon.ico”。如果你的exe文件有3个图标,你可以用“setup.exe,1”选择第2个,使用“setup.exe,2”选择最后一个,因为计数是基于零的索引。

有关wikipedia

的更多信息

要在安装程序的最后启动应用程序,您需要

  1. 右键单击您的安装项目,单击“自定义操作”。 然后右键单击Commit,Add Custom Action,并选择要运行的文件。 (请注意,它必须已经在您的应用程序文件夹中,因为您运行程序无论如何都不应该是您的问题。 只需选择项目的输出即可。
  2. 然后,单击此添加的.exe,并将InstallerClass更改为false。这很重要,因为它会寻找安装程序。 您甚至可以通过将参数添加到Arguments属性
  3. 将参数传递给.exe

    您需要查看您是否希望自己的应用以提升或普通的用户权限运行。一篇好文章是msdn launch as user from UAC

    请检查堆叠问题launch appmicrosoft installerrun exe after msi installation (Visual Studio 2008)

答案 1 :(得分:1)

在VS 2015安装项目(安装程序扩展)中,有自定义操作。您在解决方案资源管理器中选择安装项目,然后执行查看 - >编辑 - >自定义操作,并且您需要安装自定义操作。默认情况下,自定义操作将在安装完成之前停止安装,因此基本上您需要一个自定义操作来执行程序的shell运行(以便它以异步方式运行,火灾并忘记)。

这通常有助于自定义操作:

https://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup-projects-and-custom-actions/

然而,这几乎肯定无法正常工作,因为正如Damien所说,在Everyone安装中,自定义操作及其后代将与系统帐户一起运行升级,并且程序将不会像它被解雇互动用户。您可以做的最好的事情是使用Orca等工具编辑MSI文件,在CustomAction表中找到自定义操作,然后关闭msidbCustomActionTypeNoImpersonate位,以便自定义操作作为安装用户进行模拟。那是在Type列中。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368069(v=vs.85).aspx

所有这一切通常都是一个坏主意,因为Visual Studio安装程序无法访问所有Windows Installer功能,也不允许您移动自定义操作,因此它们会自动运行安装用户的凭据。根本问题是,使用系统帐户运行的msiexec.exe进程启动的程序(可能已升级)与使用快捷方式的交互式用户启动时的行为不同,并且很难模拟该快捷方式行为从安装程序的上下文。