【发布时间】:2011-09-09 18:44:17
【问题描述】:
我的应用具有 3.0 的 Target .NET Framework。
我有一台全新安装了 Windows XP SP3 的 PC。接下来,我在上面安装了 .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 吗?
【问题讨论】:
-
我想我可以编写一个自定义的先决条件和 A) Check if user has .NET Framework 3.0 installed。 (新版XP没有,新版Vista有,新版Win 7有) B)如果没有安装.NET 3,安装3.5。
-
好的,成功了。为什么应用程序不能正常运行(在带有 .NET 4.0 的 XP SP3 上)对我来说没有意义。
标签: c# .net .net-4.0 clickonce .net-3.0