.NETフレームワークの.NETフレームワークの.NETフレームワーク4.0の.NETフレームワーク3.0アプリ4.0
質問
私のアプリには、3.0のターゲット.NETフレームワークがあります。
Windows XP SP3の新鮮なインストールを備えたPCがあります。次に、.NETフレームワーク4.0を完全にインストールしました。
ClickOnce Deployedアプリを実行しようとすると、 「ランタイムをロードできなかった」 エラー:
[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フレームワーク3.5 SP1をインストールする必要がありますか?
解決
はい、.NETフレームワーク3.5をインストールして再試行します。機能しない場合は、3.0をインストールします( Microsoft .NETフレームワーク3.0再配布可能なパッケージ ).
.NET 3.5 SP1と.NET 4はどちらも、アプリケーションを展開するマシンに存在します。
編集:
また、これらの質問を確認してください。
他のヒント
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のライブラリと並行して存在するまったく新しいライブラリのセットです。これは、2.0/3.0/3.5よりも新しいCLRランタイムを使用している.NET 4の結果であると思います。 2.0/3.0/3.5はすべて同じランタイムを使用しているため、新しいバージョンごとに以前のバージョンのインストールが必要でした。
それはコメンセプトなので、コンポーネントが適切に設定されていないかもしれないと思います。
パブリッシュ]タブでプロジェクトプロパティを確認してください。アプリケーションファイルで、すべてのファイルを表示し、必要なものがすべて含まれているようにマークされていることを確認してください。
そこには、必要なコンポーネント(適切なフレームワークなど)をダウンロードするようにアプリケーションに依頼することもできます。
このような誤解を招くエラーメッセージは、過去に私に起こりました。また、他の返信が述べているように、単なるフレームワークでもあります。