前提条件验证和安装 C#

3

我开发了一个自定义安装程序,因为Visual Studio Setup Projects不足以满足我的需求。我开发了一个验证器和一个安装程序,用于先决条件,如.NET框架、SQL Server,但我无法启动一些可执行文件,例如.NET框架中的可执行文件,使用Process.Start。

我想知道是否有一个自定义验证器和安装程序来处理先决条件,或者有没有一种方式可以不必自己开发就可以进行先决条件的安装和验证 :)

提前感谢。
保罗


为什么您无法启动安装程序?而且,为什么您没有选择现有的安装程序工具,例如WiX或NSIS? - Dirk Vollmar
2个回答

0

为什么Process.Start()对你不起作用?在没有这方面的知识的情况下,我只能描述我在尝试启动.NET安装程序时遇到的情况。

如果出现UAC对话框,请求管理员权限,则无法避免需要用户单击它。任何非提升的安装过程,包括专业的第三方解决方案,在尝试启动.NET安装程序时都会遇到UAC对话框。这是因为.NET安装程序需要提升的管理员令牌才能运行。你无法绕过这个问题。

处理后台UAC对话框就是我遇到的问题。它会静默闪烁,并被用户忽略,他们可能认为安装程序已经冻结并放弃了它。我花了两个星期来解决这个问题。只有当用户在安装程序启动和UAC对话框出现之间点击安装程序窗口外部时,才会发生这种情况。这样做会让Windows认为用户想要在其他地方工作,并保持他所点击的窗口处于活动状态。Windows旨在抑制“焦点窃取”,因此没有任何官方方法可以“抢占”焦点返回你的窗口(即你的进程启动的UAC对话框)。

可以安全地假设您的用户点击的窗口不是您拥有的,因此官方的Windows方法(使具有焦点的窗口授予您的进程获取焦点的权限)对于这种情况不起作用。这就是如果msiexec.exe能够保持其窗口处于顶层状态,那将是很好的。

所以在这一点上,如果您遇到了我遇到的问题,那么我所知道的没有任何简单且得到微软支持的解决方案。

但也许您遇到了其他问题?请再次更新您的问题,提供更多细节,以便我们给出更好的答案。

更改安装IDE,正如另一个用户建议的那样,无论目标IDE有多好,都是一个重要的步骤。尽管我不能推荐使用Visual Studio开发MSI文件,但只有在您继续遇到无法完成所需任务的问题时,我才会考虑转移到另一个IDE。然而,到目前为止,您只描述了一个局部问题,可能无法通过使用其他工具来解决。


0

我强烈建议您查看http://nsis.sourceforge.net/Main_Page。这是一个开源的安装工具,我已经用它来完成了您正在寻找的任务,并且有着庞大的社区支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接