先决条件验证和安装C#

时间:2010-10-29 14:07:27

标签: c# windows-installer prerequisites

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

我想知道是否有一个自定义验证器和安装程序用于先决条件或者一种方法来执行先决条件安装和验证不同于自己开发一个:)。

提前致谢。
保罗

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

处理后台UAC对话是我遇到的问题。它会默默地闪烁,并被那些可能认为安装程序已经冻结并完全放弃它的用户所忽视。我只花了两周时间研究这个问题。只有当用户在安装程序启动和UAC对话框出现之间单击安装程序窗口外时才会发生这种情况。这样做会让Windows认为用户想要处理其他事情,并保持他点击的窗口处于活动状态。 Windows旨在抑制"重点窃取",因此没有任何官方方式来抓住"重新关注你的窗口(即你的过程开始的UAC对话框。)

可以安全地假设您的用户点击的窗口并非由您拥有,因此正式的Windows方法(具有焦点窗口授予您的进程获取焦点的权限)赢得了#39为这种情况工作。如果msiexec.exe能够将其窗口保持在顶级状态,那么这就好了。

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

但也许你正在遇到其他事情?请再次提供更多详细信息,以便我们为您提供更好的答案。

更改安装IDE ,正如另一个用户建议的那样,无论目标IDE有多好,都是一大步。尽管我不建议使用Visual Studio来开发MSI文件,但只有当你继续遇到想要完成的问题时,我才考虑转移到另一个IDE。到目前为止,您只描述了要解决的本地化问题,以及可能无法使用其他工具解决的问题。