Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有.NET Framework 4.0的Windows XP SP3上的.NET Framework 3.0应用程序_C#_.net_.net 4.0_Clickonce_.net 3.0 - Fatal编程技术网

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

C# 带有.NET Framework 4.0的Windows XP SP3上的.NET Framework 3.0应用程序,c#,.net,.net-4.0,clickonce,.net-3.0,C#,.net,.net 4.0,Clickonce,.net 3.0,我的应用程序的目标.NET框架为3.0 我有一台新安装了WindowsXPSP3的电脑。接下来,我在上面安装了.NETFramework4.0 当我尝试运行ClickOnce部署的应用程序时,会出现“无法加载运行时”错误: [9/9/2011 11:39:53 AM] System.Runtime.InteropServices.COMException - Failed to load the runtime. (Exception from HRESULT: 0x80131700)

我的应用程序的目标.NET框架为3.0

我有一台新安装了WindowsXPSP3的电脑。接下来,我在上面安装了.NETFramework4.0

当我尝试运行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()

.NET3.5SP1和.NET4都存在于我们部署应用程序的机器中

编辑:

同时检查以下问题:


是的,我将安装.NET Framework 3.5并重试,如果它不起作用,我将安装3.0()

.NET3.5SP1和.NET4都存在于我们部署应用程序的机器中

编辑:

同时检查以下问题:


这是一个例外,所以我想说的是,可能某个组件没有正确设置

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

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


这种误导性的错误信息在过去发生在我身上。也可能只是其他回复中所述的框架。

这是一个COMException,因此我想说的是,可能某个组件没有正确设置

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

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


这种误导性的错误信息在过去发生在我身上。也可能只是其他回复中所述的框架。

如Davide Piras所述,您需要安装.NET 3.0。需要这样做的原因是.NET4不是3.5/3.0/2.0库的依赖项超集

.NET3.5是3.0库加上一些附加库。 .NET3.0是2.0库加上一些附加库


然而,.NET4是一组全新的库,与2.0/3.0/3.5库并行存在。我相信这是由于.NET4使用了比2.0/3.0/3.5更新的CLR运行时。2.0/3.0/3.5都使用相同的运行时,因此每个新版本都需要安装以前的版本。

如Davide Piras所述,您需要安装.NET 3.0。需要这样做的原因是.NET4不是3.5/3.0/2.0库的依赖项超集

.NET3.5是3.0库加上一些附加库。 .NET3.0是2.0库加上一些附加库


然而,.NET4是一组全新的库,与2.0/3.0/3.5库并行存在。我相信这是由于.NET4使用了比2.0/3.0/3.5更新的CLR运行时。2.0/3.0/3.5都使用相同的运行时,因此每个新版本都需要安装以前的版本。

。这是一个商业应用程序(可由网络上的任何人下载)。如果用户已经安装了.NET Framework 4.0,我不想要求下载并安装.NET Framework 3.5!我是否需要编写一个自定义引导程序来检查用户是否在XP上,如果是,是否需要3.5?您是否控制此应用程序?那是你的吗?你能针对.NET 3.5或.NET 4吗?当然可以,但我不希望Vista用户无缘无故地下载.NET 3.5或4.0。(Vista附带.NET 3.0,这就是为什么我们将3.0作为目标,以最大限度地减少下载和安装时间)正如您在另一条评论中所说的,由于安装.NET 3.5时它可以工作,因此我会将.NET 3.5作为安装的先决条件,以便没有它的人可以下载它。如果您不以Framework4为目标,那么在具有.NET4的机器中也需要3.5。这很可能只发生在旧机器上,Vista和Windows7及其服务包已经有了3.5和4.0,我想。明白你的意思了。阅读本文:他们解释说Vista SP1有.NET 3.0 SP1,它也执行.NET 3.5,所以如果用户有Vista SP1,你完全可以在代码中以.NET 3.5为目标。真恶心。这是一个商业应用程序(可由网络上的任何人下载)。如果用户已经安装了.NET Framework 4.0,我不想要求下载并安装.NET Framework 3.5!我是否需要编写一个自定义引导程序来检查用户是否在XP上,如果是,是否需要3.5?您是否控制此应用程序?那是你的吗?你能针对.NET 3.5或.NET 4吗?当然可以,但我不希望Vista用户无缘无故地下载.NET 3.5或4.0。(Vista附带.NET 3.0,这就是为什么我们将3.0作为目标,以最大限度地减少下载和安装时间)正如您在另一条评论中所说的,由于安装.NET 3.5时它可以工作,因此我会将.NET 3.5作为安装的先决条件,以便没有它的人可以下载它。如果您不以Framework4为目标,那么在具有.NET4的机器中也需要3.5。这很可能只发生在旧机器上,Vista和Windows7及其服务包已经有了3.5和4.0,我想。明白你的意思了。阅读本文:他们解释说Vista SP1有.NET 3.0 SP1,它也执行.NET 3.5,所以如果用户有Vista SP1,你完全可以在代码中以.NET 3.5为目标。我认为这与COM无关。如果安装了.NETFramework3.5,工作正常……我认为它与COM无关。如果安装了.NETFramework3.5,则可以正常工作……我想我可以编写一个自定义前提条件和一个(可选的)脚本。(fresh XP不会安装,fresh Vista会安装,fresh Win 7会安装)B)如果没有安装.NET 3,请安装3.5.OK,这样就行了。为什么应用程序不能正常运行(在XP SP3 w上)