C# 安装并加载新版本后,安装程序不会退出

C# 安装并加载新版本后,安装程序不会退出,c#,windows-installer,vsinstaller,C#,Windows Installer,Vsinstaller,我的C#应用程序有一个Visual Studio安装程序项目。它已设置为卸载我的应用程序的任何以前版本,安装新版本,然后在安装后运行应用程序。它在最后的“请等待”阶段按照预期工作到最后: 此时,我的应用程序的新版本已经安装,并且运行得非常愉快,但是上面的屏幕截图就在那里(完全响应),只有在我手动关闭新安装的应用程序版本后,它才会进入“安装完成”窗口 我的安装程序项目的配置是否有问题?我不希望人们为了完成安装过程而关闭应用程序,然后再手动运行应用程序!这就是为什么我设置安装程序在安装新版本后自

我的C#应用程序有一个Visual Studio安装程序项目。它已设置为卸载我的应用程序的任何以前版本,安装新版本,然后在安装后运行应用程序。它在最后的“请等待”阶段按照预期工作到最后:

此时,我的应用程序的新版本已经安装,并且运行得非常愉快,但是上面的屏幕截图就在那里(完全响应),只有在我手动关闭新安装的应用程序版本后,它才会进入“安装完成”窗口


我的安装程序项目的配置是否有问题?我不希望人们为了完成安装过程而关闭应用程序,然后再手动运行应用程序!这就是为什么我设置安装程序在安装新版本后自动运行它

使用Visual Studio安装程序项目时,这似乎是一个常见问题。以下问题确定了类似的问题:

下面的问题给出了一个解决方案,但在建议的程度上存在分歧:

不过,我建议的解决方案是,如果可能的话,尝试使用WiX()编写Windows安装程序。与VisualStudio安装程序项目相比,学习曲线可能要陡峭一些,但一旦您熟悉了它,您会发现您将接触到更多Windows安装程序的功能,以及Wix工具集提供的一系列附加功能。WiX文档提供了一个如何实现您的目标的示例:


这似乎是使用Visual Studio安装程序项目时的常见问题。以下问题确定了类似的问题:

下面的问题给出了一个解决方案,但在建议的程度上存在分歧:

不过,我建议的解决方案是,如果可能的话,尝试使用WiX()编写Windows安装程序。与VisualStudio安装程序项目相比,学习曲线可能要陡峭一些,但一旦您熟悉了它,您会发现您将接触到更多Windows安装程序的功能,以及Wix工具集提供的一系列附加功能。WiX文档提供了一个如何实现您的目标的示例:


我没有明确提到的主要问题是,安装结束时程序的运行是同步的,因此安装程序会等待它完成。如果您不想将项目更改为WiX,至少有两种解决方案:

  • 创建另一个小型自定义操作,异步启动exe并退出,而不是直接作为自定义操作运行程序

  • VisualStudio设置不允许您像其他工具一样设置异步设置,但您可以通过打开MSI文件(使用Orca)并转到CustomAction表来实现这一点。您的自定义操作的类型很可能为3090。如果将其更改为3282(添加192),则自定义操作将是异步的,安装将完成


  • 我没有明确提到的主要问题是,安装结束时程序的运行是同步的,因此安装程序会等待它完成。如果您不想将项目更改为WiX,至少有两种解决方案:

  • 创建另一个小型自定义操作,异步启动exe并退出,而不是直接作为自定义操作运行程序

  • VisualStudio设置不允许您像其他工具一样设置异步设置,但您可以通过打开MSI文件(使用Orca)并转到CustomAction表来实现这一点。您的自定义操作的类型很可能为3090。如果将其更改为3282(添加192),则自定义操作将是异步的,安装将完成


  • 谢谢你的回答。目前,我刚刚删除了“安装后启动”部分,因此安装程序正在成功完成。理想的想法是,我仍然希望我的应用程序在安装后自动启动,所以我会检查WiX。我真的只有一个Exe文件转储在程序文件(加上一个开始菜单快捷方式),所以希望会有一些教程或指针如何实现这一点使用WiX。没有任何问题。这里的文档非常详细,可能有点让人不知所措,但它很好地解释了Windows Installer的概念,如果您想保持安装的可维护性、可维护性和可升级性,充分理解这些概念非常重要。谢谢您的回答。目前,我刚刚删除了“安装后启动”部分,因此安装程序正在成功完成。理想的想法是,我仍然希望我的应用程序在安装后自动启动,所以我会检查WiX。我真的只有一个Exe文件转储在程序文件(加上一个开始菜单快捷方式),所以希望会有一些教程或指针如何实现这一点使用WiX。没有任何问题。这里的文档非常详细,可能有点让人难以理解,但它很好地解释了Windows Installer的概念,如果您想保持安装的可维护性、可维护性和可升级性,那么很好地理解这些概念非常重要。