我的应用的目标.NET Framework为3.0。
我有一台全新安装Windows XP SP3的电脑。接下来,我在其上安装了.NET Framework 4.0 Full。
当我尝试运行ClickOnce部署的应用时,我得到“无法加载运行时”错误:
[9/9/2011 11:39:53 AM] System.Runtime.InteropServices.COMException
- Failed to load the runtime. (Exception from HRESULT: 0x80131700)
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.NativeMethods.IClrMetaHostPolicy.GetRequestedRuntime(MetaHostPolicyFlags policyFlags, String binaryPath, IStream configStream, StringBuilder version, Int32& versionLength, StringBuilder imageVersion, Int32& imageVersionLength, Int32& pdwConfigFlags, Guid interfaceId)
at System.Deployment.Application.NativeMethods.GetAssemblyCacheInterface(String CLRVersionString, Boolean FetchRuntimeHost, CCorRuntimeHost& RuntimeHost)
at System.Deployment.Application.PlatformDetector.VerifyPlatformDependencies(AssemblyManifest appManifest, AssemblyManifest deployManifest, String tempDir)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
我的理解是,针对.NET 3.0的应用程序应该适用于安装了.NET 4.0的计算机。导致此错误的原因是什么?我必须在Windows XP计算机上安装.NET Framework 3.5 SP1吗?
答案 0 :(得分:3)
是的我会安装.NET Framework 3.5并重试,如果它不起作用,我会安装3.0(Microsoft .NET Framework 3.0 Redistributable Package)。
.NET 3.5 SP1和.NET 4都存在于我们部署应用程序的计算机中。
修改强>
还要检查以下问题:
答案 1 :(得分:1)
正如Davide Piras所说,你需要安装.NET 3.0。您需要做的是.NET 4不是3.5 / 3.0 / 2.0库的依赖超集。
.NET 3.5是3.0库以及一些额外的库。 .NET 3.0是2.0库以及一些额外的库
但是,.NET 4是一组全新的库,它们与2.0 / 3.0 / 3.5并行存在。我相信这是.NET 4使用新的CLR运行时而不是2.0 / 3.0 / 3.5的结果。 2.0 / 3.0 / 3.5都使用相同的运行时,因此每个新版本都需要安装以前的版本。
答案 2 :(得分:0)
这是一个COMException,所以我想说组件可能没有正确设置。
检查发布标签下的项目属性。在“应用程序文件”中,选中“显示所有文件”,并确保将所有需要标记为已包含。
在那里,您还可以要求应用程序下载所需的组件(例如正确的框架)。
过去,我发生了这种误导性的错误信息。也可能只是其他回复的框架。