带有.NET Framework 4.0的Windows XP SP3上的.NET Framework 3.0应用程序

时间:2011-09-09 18:44:18

标签: c# .net .net-4.0 clickonce .net-3.0

我的应用的目标.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吗?

3 个答案:

答案 0 :(得分:3)

是的我会安装.NET Framework 3.5并重试,如果它不起作用,我会安装3.0(Microsoft .NET Framework 3.0 Redistributable Package)。

.NET 3.5 SP1和.NET 4都存在于我们部署应用程序的计算机中。

修改

还要检查以下问题:

What .NET Framework version should I ship with; 2, 3, 3.5?

Is .net framework 2.0 required if 3.5 is installed?

答案 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,所以我想说组件可能没有正确设置。

检查发布标签下的项目属性。在“应用程序文件”中,选中“显示所有文件”,并确保将所有需要标记为已包含。

在那里,您还可以要求应用程序下载所需的组件(例如正确的框架)。

过去,我发生了这种误导性的错误信息。也可能只是其他回复的框架。