3

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

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

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

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

4

3 回答 3

7

您是如何安装产品的?

安装项目将输出两个文件:

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

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

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

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

于 2009-01-07T09:21:13.770 回答
1

谢谢迪沃,

我正在运行 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,Setup.exe 在 Win2000 SP4 下仍会显示相同的错误消息。

编辑:可以通过安装适用于 Windows 2000 SP4 (KB891861) 的更新汇总 1来修复 Win 2000 问题。

于 2009-01-07T09:37:41.070 回答
0

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

于 2009-01-07T13:16:33.467 回答