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

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

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

有没有办法一次性安装 .NET 2.0 和我的应用程序?

有帮助吗?

解决方案

您是如何安装该产品的?

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

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

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

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

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

其他提示

谢谢迪沃,

我正在运行 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仍会显示相同的错误消息。

编辑:Win 2000 问题可以通过安装 Windows 2000 SP4 更新汇总 1 (KB891861).

Hanselminutes的这一集详细介绍了Paint.Net安排下载&按需安装所需的.NET框架,并与应用程序安装集成。不可否认,这可能是大多数应用程序所需要的更复杂,但仍然是一个有趣的讨论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top