未処理の例外:System.IO.FileLoadException:ファイルまたはアセンブリをロードできませんでした 'TheLibrary、バージョン= 1.2.3905.36284、Culture = neutral、PublicKeyToken = 14 04827c3a8f2601 'またはその依存関係の1つ。 サイドバイサイドの構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションイベントログを参照してください。 (HRESULTからの例外:0x800736B1)ファイル名: 'TheLibrary、Version = 1.2.3905.36284、Culture = neutral、PublicKe yToken = 1404827c3a8f2601' ---> System.Runtime.InteropServices.COMException(0x800 736B1):サイドバイサイドの構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションイベントログを参照してください。(HRESULTからの例外: 0x800736B1)
イベントログを見ると、このエラーが発生します。
「C:\ project\Debug\MyLibrary.dll」のアクティベーションコンテキストの生成に失敗しました。依存アセンブリMicrosoft.VC90.DebugCRT、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version = "9.0.21022.8"が見つかりませんでした。詳細な診断にはsxstrace.exeを使用してください。
エラーをログに記録するためにsxstrace
を使用しました。結果は次のとおりです。
=================アクティベーションコンテキストの生成を開始します。入力パラメーター:フラグ= 0 ProcessorArchitecture = x86 CultureFallBacks = en-US; en ManifestPath = C:\ Windows\system32\cmd.exe AssemblyDirectory = C:\ Windows\system32\Application Config File = --------- --------情報:マニフェストファイルC:\ Windows\system32\cmd.exeを解析しています。情報:マニフェスト定義IDはMicrosoft.Windows.FileSystem.CMD、processorArchitecture = "x86"、type = "win32"、version = "5.1.0.0"です。情報:アクティブ化コンテキストの生成に成功しました。アクティベーションコンテキストの生成を終了します。
=================アクティベーションコンテキストの生成を開始します。入力パラメーター:フラグ= 0 ProcessorArchitecture = x86 CultureFallBacks = en-US; en ManifestPath = C:\ Debug\TheLibrary.dll AssemblyDirectory = C:\ Debug\Application Config File = ------------- ----情報:マニフェストファイルC:\ Debug\TheLibrary.dllを解析しています。情報:マニフェスト定義IDは(null)です。情報:参照:Microsoft.VC90.DebugCRT、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version = "9.0.21022.8"情報:参照Microsoft.VC90.DebugCRT、processorArchitecture = "x86"を解決しています、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version = "9.0.21022.8"です。情報:ProcessorArchitecture x86の参照を解決しています。情報:カルチャニュートラルの参照を解決しています。情報:バインドポリシーを適用しています。情報:発行者ポリシーが見つかりません。情報:バインドポリシーのリダイレクトが見つかりませんでした。情報:アセンブリのプローブを開始します。情報:WinSxSでアセンブリが見つかりませんでした。 情報:C:\ Windows\Assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLLでマニフェストをプローブしようとしました。情報:C:\ Debugでマニフェストをプローブしようとしました\ Microsoft.VC90.DebugCRT.DLL。INFO:C:\ Debug\Microsoft.VC90.DebugCRT.MANIFEST。INFOでマニフェストをプローブしようとしました:INFO:C:\ Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90でマニフェストをプローブしようとしました.DebugCRT.DLL。INFO:C:\ Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST。 INFOでマニフェストをプローブしようとしました:カルチャニュートラルのマニフェストが見つかりませんでした。情報:アセンブリのプローブを終了します。エラー:参照Microsoft.VC90.DebugCRT、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version = "9.0.21022.8"を解決できません。エラー:アクティブ化コンテキストの生成に失敗しました。アクティベーションコンテキストの生成を終了します。
参照を解決できませんMicrosoft.VC90.DebugCRT,processorArchitecture=...
何か案は?
依存アセンブリMicrosoft.VC90.DebugCRT、...が見つかりませんでした
はい、Visual Studioがインストールされているマシンでのみ見つかります。 DebugCRTは配布できません。また、CまたはC++コードを記述してデバッグビルドをデプロイすることは意味がありません。lot遅くなります。
DLLのリリースビルドバージョンをデプロイします。 VC++ライブラリは、セットアッププロジェクトの前提条件のチェックボックスの1つです。
これとまったく同じエラーが発生しましたが、エラーと比較して原因が非常に誤解を招くため、Googleで上位に来るため、ここに追加する価値があると思います...
Windowsサービスの開始の場合、「アプリケーションのサイドバイサイドの構成が正しくないため、アプリケーションを開始できませんでした」というエラーが発生していました。私たちの例では、これはサービスapplication.configによって引き起こされましたxmlファイルが有効ではありません-誰かが手動で編集し、追加の終了タグに貼り付けました。これを修正することで、「まったく関係がない」というエラーメッセージが解決されました。
これを確認する最も簡単な方法は、XMLファイルをWeb上で無料で提供されている多くのオンラインxmlバリデーターの1つに貼り付けることです。
これはC#とマークされているので、C#で答えます。何かがプロジェクト名.exe.configファイルを壊しました。
テキストエディタでプルアップすると、何かが正しく閉じられないか、最後に文字化けが発生する可能性があります。あなたはそれが後で起こった理由を理解することができます。しかし、今のところ、それを修正するだけで起動できます。
アプリケーションパスからマニフェストファイルを削除するだけで、実行可能ファイルが適切に機能します。
Windows 7を使用しているかどうかを実際に確認するには(8とVistaで同じでなければなりません)
コントロールパネルシステムの管理ツールから開き、イベントビューアを選択します
Windowsログ->アプリケーションをクリックします
列の下にエラーログを並べて表示します
エラーが発生した行番号をメモします。
次に、書き込みやメモ帳などのエディターでyourfilename.exe.manifestを開きます
次に、行番号</ to />
から行を削除してファイルを保存します
あなたの問題は解決されました。
App.configファイルに不一致またはシステムエラーがあることを確認して、サイドバイサイドのエラーを見つけました。 app.configファイルでバグを見つけて修正します。
このエラーが発生する可能性があるもう1つの理由を特定したいと思いました。*.config
ファイルのエンコードが間違っています。
このファイルはUTF-8
にある必要がありますが、notepad.exe
を使用して手動で設定ファイルを作成することにより、最近では実際にANSI
を誤って取得する可能性があります。
Http Webサービスバインディング内の<httpsTransport>
などの設定を誤って配置していないことを確認してください。
私にはこの問題があり、それはapp.manifestファイルのversion
要素のassemblyIdentity
値に関する単純な問題でした。どうやらversion
は4つすべての数値を持っている必要があります(assemblyIdentity
が無視される場合を除きます。これは、マニフェストが埋め込まれている場合に当てはまります)。
だからここでの修正:
<assemblyIdentity name="MyApplication" version="1.0.1" publicKeyToken="D3567E058552E2DF" type="win32" processorArchitecture="x86" />
設定することです
version="1.0.1.0"
その後、すべてがおかしくなりました。