visual-studio-2010 - 通过 Visual Studio 2010 作为 ClickOnce 应用程序部署的一部分安装 .NET Framework 时出现错误代码 5100

标签 visual-studio-2010 .net-4.0 clickonce 32bit-64bit

在 Visual Studio 2010 中,我已将我的应用程序设置为面向 .NET Framework 的第 4 版和“所有 CPU”。由于我们的一些用户是 64 位的,而另一些是 32 位的,我假设人们会选择所有 CPU。那是正确的吗?

在特定用户的 32 位 Windows 7 SP1 机器上,框架安装(通过 ClickOnce)失败,错误代码为 5100,根据 this MSDN article , 表示 The user's computer does not meet system requirements .

用户的PC是 32 位 Windows 7 SP1,所以我想知道命令参数“FullX64Bootstrapper”是否正确?

作为 ClickOnce 发布机制的一部分,此安装由 Microsoft 控制。看起来好像是在尝试将 64 位框架安装到 32 位机器上?那是什么可能导致 5100 错误?

这是从日志中摘录的命令(我的重点):

Installing using command 'C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe' and parameters ' /q /norestart /ChainingPackage FullX64Bootstrapper /lcid 1033'



这是完整的日志:
The following properties have been set:
 Property: [AdminUser] = true {boolean}
 Property: [InstallMode] = HomeSite {string}
 Property: [ProcessorArchitecture] = Intel {string}
 Property: [VersionNT] = 6.1.1 {version}
 Running checks for package 'Windows Installer 3.1', phase BuildList
 The following properties have been set for package 'Windows Installer 3.1':
 Running checks for command 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe'
 Result of running operator 'VersionGreaterThanOrEqualTo' on property 'VersionMsi' and value '3.1': true
 Result of checks for command 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' is 'Bypass'
 'Windows Installer 3.1' RunCheck result: No Install Needed
 Running checks for package 'Microsoft .NET Framework 4 (x86 and x64)', phase BuildList
 Reading value 'Version' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full'
 Unable to read registry value
 Not setting value for property 'DotNet40Full_TargetVersion'
 The following properties have been set for package 'Microsoft .NET Framework 4 (x86 and x64)':
 Running checks for command 'DotNetFX40\dotNetFx40_Full_x86_x64.exe'
 Result of running operator 'ValueEqualTo' on property 'InstallMode' and value 'HomeSite': true
 Result of checks for command 'DotNetFX40\dotNetFx40_Full_x86_x64.exe' is 'Bypass'
 Running checks for command 'DotNetFX40\dotNetFx40_Full_setup.exe'
 Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
 Skipping ByPassIf because Property 'DotNet40Full_TargetVersion' was not defined
 Result of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': false
 Result of running operator 'VersionLessThan' on property 'VersionNT' and value '5.1.2': false
 Result of running operator 'ValueEqualTo' on property 'ProcessorArchitecture' and value 'IA64': false
 Result of checks for command 'DotNetFX40\dotNetFx40_Full_setup.exe' is 'Install'
 'Microsoft .NET Framework 4 (x86 and x64)' RunCheck result: Install Needed
 EULA for components 'Microsoft .NET Framework 4 (x86 and x64)' was accepted.
 Copying files to temporary directory "C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\"
 Downloading files to "C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\"
 (1/2/2013 11:09:57 AM) Downloading 'DotNetFX40\dotNetFx40_Full_setup.exe' from 'http://go.microsoft.com/fwlink/?linkid=182805' to 'C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\'
 Download completed at 1/2/2013 11:10:00 AM
 Verifying file integrity of C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe
 WinVerifyTrust returned 0
 File trusted
 Running checks for package 'Microsoft .NET Framework 4 (x86 and x64)', phase BeforePackage
 Reading value 'Version' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full'
 Unable to read registry value
 Not setting value for property 'DotNet40Full_TargetVersion'
 The following properties have been set for package 'Microsoft .NET Framework 4 (x86 and x64)':
 Running checks for command 'DotNetFX40\dotNetFx40_Full_setup.exe'
 Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
 Skipping ByPassIf because Property 'DotNet40Full_TargetVersion' was not defined
 Result of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': false
 Result of running operator 'VersionLessThan' on property 'VersionNT' and value '5.1.2': false
 Result of running operator 'ValueEqualTo' on property 'ProcessorArchitecture' and value 'IA64': false
 Result of checks for command 'DotNetFX40\dotNetFx40_Full_setup.exe' is 'Install'
 'Microsoft .NET Framework 4 (x86 and x64)' RunCheck result: Install Needed
 Verifying file integrity of C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe
 WinVerifyTrust returned 0
 File trusted
 Installing using command 'C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe' and parameters ' /q /norestart /ChainingPackage FullX64Bootstrapper /lcid 1033'
 Process exited with code 5100
 Status of package 'Microsoft .NET Framework 4 (x86 and x64)' after install is 'InstallFailed'

最佳答案

在 MSDN 上,有 a short list of .NET installer return codes :

  • 0: Installation completed successfully.
  • 1602: The user canceled installation.
  • 1603: A fatal error occurred during installation.
  • 1641: A restart is required to complete the installation. This message indicates success.
  • 3010: A restart is required to complete the installation. This message indicates success.
  • 5100: The user's computer does not meet system requirements.


所以根据微软的说法, 5100 返回码在某种程度上与系统要求有关。

在我的系统上,这是因为之前的(其他)设置确实需要重新启动,而我忽略了重新启动。重新启动后,.NET Framework 4 安装成功。

在另一个系统上,这是由于我的硬盘没有足够的可用空间。一旦我释放了一些 GB,设置就成功了。

关于visual-studio-2010 - 通过 Visual Studio 2010 作为 ClickOnce 应用程序部署的一部分安装 .NET Framework 时出现错误代码 5100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158331/

相关文章:

.net-4.0 - 为什么我的网站需要 "Enable 32-bit applications"?

.net - ClickOnce 应用程序调试中的 "Store metadata "CurrentBind "is not valid"

c - 需要有关通过按键宏格式化 C 注释的方法的建议

c++ - 为什么C++中的消息框显示中文消息

c# - 混合模式程序集是针对版本 'v1.1.4322' 构建的

windows - Clickonce 应用程序无法从 Windows 1803 启动

c# - 如何在 Visual Studio 上编写发布注释

c++ - 根据#define 切换函数

c++ - Visual Studio - 调用堆栈不会追溯到用户函数

c# - Dapper 错误将 tinyint 解析为短?