Windows 7 引导程序(setup.exe)显示“启动”;。“未找到净3.5”;但启动.msi直接安装应用程序不会出现问题

Windows 7 引导程序(setup.exe)显示“启动”;。“未找到净3.5”;但启动.msi直接安装应用程序不会出现问题,windows-7,installation,wix,windows-installer,Windows 7,Installation,Wix,Windows Installer,我们的安装程序生成一个引导程序(setup.exe)和一个MSI文件——这是一个非常常见的场景 其中一台生产机器在安装过程中报告了一个奇怪的问题: 如果用户启动引导程序(setup.exe),它会报告未安装.NET 3.5。这发生在Administrator组下的帐户上。无论他们是否以管理员身份启动,都会出现相同的行为 当直接启动application.msi或OurInstallLauncher.exe(请参见下面的说明)时,无论是否应用了以管理员身份运行,应用程序都可以正常安装 我们已检查

我们的安装程序生成一个引导程序(setup.exe)和一个MSI文件——这是一个非常常见的场景

其中一台生产机器在安装过程中报告了一个奇怪的问题:

  • 如果用户启动引导程序(setup.exe),它会报告未安装.NET 3.5。这发生在Administrator组下的帐户上。无论他们是否以管理员身份启动,都会出现相同的行为

  • 当直接启动
    application.msi
    OurInstallLauncher.exe
    (请参见下面的说明)时,无论是否应用了以管理员身份运行,应用程序都可以正常安装

  • 我们已检查计算机上是否安装了.NET(64位和32位“版本”=在
    C:\Windows\Microsoft.NET\Framework64
    C:\Windows\Microsoft.NET\Framework
    下都有一个名为
    v3.5
    的文件夹

这种情况发生在64位Windows 7上。我无法在开发的64位Windows 7上复制它。在Windows XP和Vista上,到目前为止,它已经工作了很长时间,没有任何问题

声明GenerateBootStrapper任务的构建脚本的一部分(无特殊说明):


Microsoft Windows安装程序3.1
Microsoft.NET Framework 3.5
注意:
OurInstallLauncher.exe
是基于用户选择对msi应用转换的语言选择器。这与问题完全无关,因为安装程序从未启动过此exe

编辑:它显示启动setup.exe后立即缺少.NET 3.5,并建议安装.NET 3.5。当用户同意安装时,.NET 3.5安装程序表示已安装.NET 3.5,MSI安装程序将继续。如果他们选择不安装.NET 3.5,安装将结束


以前有人见过这种行为吗?

MSI安装没有问题这一事实并不令人惊讶,因为只有引导程序才关心安装.NET 3.5。MSI软件包不需要.NET才能安装(除非使用在.NET程序集中实现的自定义操作,或在GAC中注册.NET程序集)


在出现问题的计算机上卸载并重新安装.NET。这很可能只是一个.NET安装被某种方式损坏。

这似乎是Bootstrapper或Windows 7中的一个错误

解决方案:

C:\Program Files\Microsoft SDK\Windows\v6.0A\Bootstrapper\Packages\DotNetFX35\en\package.xml
必须在生成计算机上进行调整,因为默认的德国Windows 7安装没有此密钥:

  <RegistryCheck Property="DotNet35InstallSuccess" 
Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\1033" Value="Install" />

请注意,不仅MSI安装,而且已安装的.NET 3.5应用程序也可以工作:)问题是引导程序没有检测到正在安装.NET 3.5。感谢您提供的重新安装提示,但我们的客户声称这台机器是新安装的,他们认为这是安装程序中的一个一般性问题,希望防止在其他计算机上发生这种情况machines@Marek:重新安装.NET仍然是消除.NET安装可能损坏。我们以同样的方式安装.NET,并且我们也有一些客户端报告类似的问题。结果总是机器出了问题,而不是我们的安装程序。似乎重新安装.NET会在HKEY_LOCAL_machine\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5.Th下重新创建1033条目可以通过在生成计算机上从.NET 3.5的引导程序定义中删除\1033来解决此问题-然后引导程序可以正确检测.NET。感谢您对此问题以及相关问题的帮助!相关问题可以帮助我解决此问题:
  <RegistryCheck Property="DotNet35InstallSuccess" 
Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\1033" Value="Install" />
  <RegistryCheck Property="DotNet35InstallSuccess" 
Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5" Value="Install" />