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

使用MSI安装带有我的应用程序的.NET Framework,.net,windows-installer,prerequisites,.net,Windows Installer,Prerequisites,我已经在VS2008中创建了一个安装项目。我的WinForms应用程序使用.NET2.0,因此我选择了.NET2.0的先决条件并构建了安装项目 当我在干净的电脑上运行Setup.msi时,它会正确地检测到.NET丢失,并询问是否应该安装它。成功安装.NET后,安装程序将退出,不再继续安装我的应用程序(我认为应该这样做) 当我在已安装.NET的PC上运行MSI文件时,我的应用程序安装正确 有没有办法一步安装.NET 2.0和我的应用程序?您是如何安装该产品的 安装项目将输出两个文件: Windo

我已经在VS2008中创建了一个安装项目。我的WinForms应用程序使用.NET2.0,因此我选择了.NET2.0的先决条件并构建了安装项目

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

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


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

您是如何安装该产品的

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

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

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

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

谢谢Divo

我正在运行MSI文件

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

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

  • Setup.exe运行时不会显示关于Kernel32.dll中缺少HeapSetInformation的消息
  • 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下仍会显示相同的错误消息


编辑:Win 2000问题可以通过安装来解决。

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

MSI内置程序将完成这项工作,但您可能需要更精确地配置它。对不起,帮不了什么忙,但我知道这是可能的。