. 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.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选项卡下检查项目属性。在"应用程序文件"中,选中"显示所有文件",并确保所有需要的文件都标记为包含。
在这里,您还可以要求应用程序下载所需的组件(例如适当的框架)。
这种误导的错误信息在我身上发生过。也可能只是框架作为其他回复状态。