【问题标题】:Creating a "sure to run" app / installer in VS2010在 VS2010 中创建“确保运行”应用程序/安装程序
【发布时间】:2010-11-26 08:38:33
【问题描述】:

我需要为不同的应用程序创建一个简单的安装程序。其他应用程序已经有它自己的简单安装程序,我不想插手它。

我自己的安装程序的原因是允许用户安装 SQL Express(如果他愿意),并且还预先安装此类过程的任何其他基本要求。

目前,我所在的位置是:
我创建了一个单一的 Windows 窗体应用程序,带有大按钮(这适用于可能不太擅长计算机的用户)来安装 SQL Server Express(使用带有预定义参数集的静默安装)或实际应用程序,以及一些有用的文本,让用户知道发生了什么。类似于 Visual Studio 自动运行窗口的内容。
我还向应用程序(.NET、Windows Installer)添加了一组标准的先决条件。

如果我使用可执行文件运行应用程序,一切正常。但是,如果我发布它以创建 ClickOnce 应用程序(以便在需要时安装先决条件)并运行它,它会停止运行其他安装程序。

编辑:显然,无法从 ClickOnce 应用程序运行其他应用程序的问题只是我自己的问题,可能值得提出一个新问题,不一定在 StackOverflow 上(也许在 MSDN 论坛上?)。

【问题讨论】:

    标签: c# visual-studio-2010 windows-installer


    【解决方案1】:

    在启动安装程序之前,您可以在程序中检查是否安装了 .NET。检查是否安装了特定的软件或软件版本非常容易。编写一个检查 HKEY/LocalMachine/Microsoft/Windows/CurrentVersion/Uninstall 的程序,其中将列出该计算机上已安装的程序。如果你找到然后继续你的安装,否则建议用户他需要安装 pre req。

    当您创建安装项目时,您可以右键单击安装项目,转到属性,然后单击先决条件。在那里,您可以提及需要哪个版本的 .NET 框架,然后给出框架的位置。在此链接中查找 Huggy Bears 响应 eggheadcafe.com/community/aspnet/2/10131905/setup-project.aspx

    【讨论】:

    • 但是该程序可能无法启动,因为它本身就是一个 .NET 应用程序!关键是要创建一些可以正常工作的东西,因此,如果需要,它应该安装 .NET。
    • 为此,您必须在非托管代码中编写设置。您将在 msdn 上找到它的示例。你可以看这里。 msdn.microsoft.com/en-us/library/ms994395.aspx。在那继续创建单个安装项目以安装 .NET Framework 应用程序和 Dotnetfx.exe
    • 原谅我的无知,但我还是不太明白你的想法。我应该创建一个非托管代码应用程序来检查 .NET 是否存在,如果不存在则运行 .NET 设置,然后启动完整的初始屏幕?如果是这样,那么我必须承认我完全没有创建非托管代码应用程序的技能,但据我了解,Windows Installer 将始终运行并安装所需的任何东西。它还可以运行另一个应用程序(这是我迄今为止大部分时间都在做的事情:P),我只是面临着强迫它回滚安装......
    • 附言。您提供的链接似乎很旧,其中链接的示例代码似乎不再存在...
    • 创建安装项目时,您可以右键单击安装项目,转到属性,然后单击先决条件。在那里,您可以提及需要哪个版本的 .NET 框架,然后给出框架的位置。在此链接中查找 Huggy Bears 回复 eggheadcafe.com/community/aspnet/2/10131905/setup-project.aspx
    【解决方案2】:

    我已经选择了“点击一次”应用程序。它可以安装它运行所需的所有必需的 .NET 组件,从而成为“肯定运行的非原生 C++ 代码启动画面”。

    诚然,Click Once 存在问题,但这总比没有好。它也比运行 C++ 或非托管代码应用程序更好。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多