在 Visual Studio 2010 中,我已将应用程序设置为面向 .NET Framework 版本 4 和“所有 CPU”。由于我们的一些用户是 64 位,而其他用户是 32 位,我假设用户会选择“所有 CPU”。那是对的吗?
在特定用户的 32 位 Windows 7 SP1 计算机上,框架安装(通过 ClickOnce)失败,错误代码为 5100,根据这篇 MSDN 文章 http://msdn.microsoft.com/en-us/library/vstudio/ee390831%28v=vs.100%29.aspx,表明The user's computer does not meet system requirements
.
用户的电脑是32-bitWindows 7 SP1,所以我想知道命令参数“FullX64Bootstrapper”首先是否正确?
此安装作为 ClickOnce 发布机制的一部分受 Microsoft 控制。看起来好像是在尝试将 64 位框架安装到 32 位机器上?这是导致 5100 错误的原因吗?
这是从日志中摘录的命令(我的重点):
使用命令“C:\Users\XXXXXX~1\AppData\Local\Temp\VSD983D.tmp\DotNetFX40\dotNetFx40_Full_setup.exe”和参数“/q /norestart /ChainingPackage”进行安装FullX64引导程序/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 上有.NET 安装程序返回代码的简短列表 http://msdn.microsoft.com/en-us/library/ee390831%28v=vs.110%29.aspx:
-
0:安装成功完成。
-
1602:用户取消安装。
-
1603:安装过程中发生致命错误。
-
1641:需要重新启动才能完成安装。此消息表明成功。
-
3010:需要重新启动才能完成安装。此消息表明成功。
-
5100:用户的计算机不符合系统要求。
因此,根据微软的说法,5100返回码在某种程度上与系统要求相关。
在我的系统上,这是由于之前的(其他)设置确实需要重新启动,而我省略了重新启动。重新启动后,.NET Framework 4 安装成功。
在另一个系统上,这是由于我的硬盘没有足够的可用空间。一旦我释放了一些 GB,设置就成功了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)