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

Tim*_*Tim 12 clickonce .net-4.0 visual-studio-2010 32bit-64bit

在Visual Studio 2010中,我将我的应用程序设置为.NET Framework的第4版和"所有CPU".由于我们的一些用户是64位而其他用户是32位,我假设有人会选择所有CPU.那是对的吗?

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

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

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

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

使用命令安装'C:\用户\ XXXXXX〜1个\应用程序数据\本地\ TEMP\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe'和参数'/ 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'
Run Code Online (Sandbox Code Playgroud)

Uwe*_*eim 17

在MSDN上,有一个简短的.NET安装程序返回代码列表:

  • 0:安装成功完成.
  • 1602:用户取消了安装.
  • 1603:安装期间发生致命错误.
  • 1641:完成安装需要重新启动.此消息表示成功.
  • 3010:需要重新启动才能完成安装.此消息表示成功.
  • 5100:用户的计算机不符合系统要求.

因此根据微软的说法,5100返回代码与系统要求有某种关系.

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

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


小智 7

我在相同的情况下收到相同的消息,因为未安装Windows XP上的Windows Imaging Component(WIC)(wic_x86_enu.exe).这对我有帮助.


Wil*_*dVS 3

我目前正在解决同样的问题。我们的一些客户的安装人员也遇到同样的问题。

到目前为止我想到的原因是:

“C: 驱动器上剩余空间不足”

这是一些5100错误的原因,但我还没有找到其他错误的原因。

如果在命令提示符中键入:“net helpmsg 5100”,则输出为“Asia”。我不知道这意味着什么。