使用MSI使用我的应用程序安装.NET Framework

时间:2009-01-07 08:57:21

标签: .net windows-installer prerequisites

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

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

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

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

3 个答案:

答案 0 :(得分:7)

您是如何安装产品的?

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

  • Windows Installer程序包(.msi)和
  • 所谓的bootstrapper(setup.exe)

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

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

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

答案 1 :(得分:1)

感谢Divo,

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

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

答案 2 :(得分:0)

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