【问题标题】:Installing .NET Framework with my app using MSI使用 MSI 在我的应用程序中安装 .NET Framework
【发布时间】:2009-01-07 08:57:21
【问题描述】:

我在 VS2008 中创建了一个安装项目。我的 WinForms 应用程序使用 .NET 2.0,因此我选择了 .NET 2.0 Prerequisity 并构建了安装项目。

当我在干净的 PC 上运行 Setup.msi 时,它会正确检测到 .NET 丢失并询问是否应该安装它。成功安装 .NET 后,安装程序会退出并且不会继续安装我的应用程序(我认为应该如此)。

当我在已安装 .NET 的 PC 上运行 MSI 文件时,我的应用程序安装正确。

有什么方法可以一步安装 .NET 2.0 和我的应用程序吗?

【问题讨论】:

  • MSI 安装程序会这样做,但也许您需要更精确地配置它。抱歉帮不上忙,但我知道这是可能的。

标签: .net windows-installer prerequisites


【解决方案1】:

您是如何安装产品的?

安装工程会输出两个文件:

  • Windows 安装程序包 (.msi),以及
  • 所谓的引导程序 (setup.exe)

引导程序将检查是否存在您指定的任何先决条件,如果尚未安装,则可能下载并安装它然后继续安装您的应用程序(通过调用 .msi )。 因此,您应该始终启动 setup.exe 来安装您的应用程序,而不是 .msi 文件(除非您知道所有先决条件都在目标系统上)。

正如 Krakkos 所说,引导程序将安装先决条件和您的应用程序(即您的 .msi 文件)。但是,我不知道有任何配置设置会阻止引导程序安装 msi。

要进行故障排除,您可以尝试创建安装日志并在日志文件中查找任何问题。

【讨论】:

    【解决方案2】:

    感谢迪沃,

    我正在运行 MSI 文件。

    运行 Setup.EXE 文件时是否有任何限制?如果我没记错的话,我曾尝试在 Windows 2000 上运行它,但它没有运行。我只能运行 MSI 文件。我打算用干净的Win2000在PC上检查一下,然后回来。

    编辑:我已经在干净的 Windows 2000 SP4 上尝试过,结果如下:

    • Setup.exe 不会运行并显示有关 Kernel32.dll 中缺少 HeapSetInformation 的消息
    • Setup.msi 也不会运行(.msi 扩展名未知)

    然后我手动安装了 Windows Installer 3.1:

    • Setup.exe 仍然无法运行并显示相同的错误消息
    • Setup.msi 将成功运行(但将仅安装 .NET 而没有我的应用...我的初始问题)

    在 Windows XP 上,Setup.exe 运行没有任何问题。

    似乎使用 Win2000 的用户必须通过安装 Windows Installer 3.1、.NET 2.0 和我的应用程序来手动安装我的应用程序。即使手动安装 .NET,在 Win2000 SP4 下 Setup.exe 仍会显示相同的错误消息。

    编辑:可以通过安装 Update Rollup 1 for Windows 2000 SP4 (KB891861) 来修复 Win 2000 问题。

    【讨论】:

      【解决方案3】:

      This episode of Hanselminutes 详细介绍了 Paint.Net 如何安排按需下载和安装所需的 .NET 框架,以及与应用程序安装集成。诚然,这可能比大多数应用程序所需的复杂得多,但仍然是一个有趣的讨论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多