2009-01-07 148 views
3

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

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

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

有什么办法如何一步安装.NET 2.0和我的应用程序?

+0

MSI intaller会这样做,但也许你需要更精确地配置它。对不起没有太大的帮助,但我知道它可能。 – Krakkos 2009-01-07 09:28:45

回答

7

您是如何安装产品的?

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

  • Windows安装程序包(.msi)和
  • 所谓的引导程序(SETUP.EXE)

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

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

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

1

谢谢Divo,

我正在运行MSI文件。

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

编辑:我曾试图在干净的Windows 2000 SP4和这里的结果:

  • 的Setup.exe将与消息有关丢失HeapSetInformation Kernel32.dll中无法运行
  • 会的setup.msi ASO无法运行(.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下显示相同的错误消息。

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

0

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