. net Framework 3.0应用程序在Windows XP SP3与.net Framework 4.0

本文关键字:net Framework SP3 XP 应用程序 Windows | 更新日期: 2023-09-27 18:08:13

我的应用有一个3.0的。net框架。

我有一台新安装了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吗?

. net Framework 3.0应用程序在Windows XP SP3与.net Framework 4.0

是的,我会安装。net Framework 3.5然后再试一次,如果它不起作用,我会安装3.0 (Microsoft . net Framework 3.0可重新分发包)。

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

编辑:

也检查这些问题:

我应该发布哪个。net框架版本;2、3、3.5?

如果安装了3.5,是否需要。net framework 2.0 ?

正如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使用比2.0/3.0/3.5新的CLR运行时的结果。2.0/3.0/3.5都使用相同的运行时,因此每个新版本都需要安装以前的版本。

这是一个COMException,所以我想说可能是一个组件没有正确设置。

在publish选项卡下检查项目属性。在"应用程序文件"中,选中"显示所有文件",并确保所有需要的文件都标记为包含。

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

这种误导的错误信息在我身上发生过。也可能只是框架作为其他回复状态。