SxSTrace でアプリのサイドバイサイド構成のトラブルシューティング
Windows Vista や 7 や 8 でアプリケーションを実行したときに表示される『The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail. (このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照してください。)』ですが、多くは通常次の2点の問題がある場合に発生します
・マニフェストに記載されている必要なランタイムが入っていない場合。
・マニフェストに記載ミスがあって解析に失敗した場合。
Windows 8.1の場合、『コマンド ライン ツール sxstrace.exe を使用してください。』と出るので、これを使ってみよう。
C:\Users\User>sxstrace Trace -logfile:c:\users\user\Desktop\setup.log StartTrace が失敗しました。エラー メッセージ: |
動かないし、エラーメッセージ空白
既にサービスが動いてるのか?
C:\Users\User>sxstrace stoptrace ControlTrace が失敗しました。エラー メッセージ: |
と思ったけど違った
何のことは無い、管理者コマンドプロンプトから実行しないといけないのだ
C:\Windows\system32>sxstrace trace -logfile:c:\users\user\desktop\setup.etl トレースが開始されました。トレースはファイル c:\users\user\desktop\setup.etl に保存されます。 トレースを停止するには Enter キーを押してください... |
目的のアプリを実行して、エラーが出たらEnter
C:\Windows\system32>sxstrace Parse -logfile:c:\Users\User\Desktop\setup.etl -outfile:c:\users\user\desktop\log.txt ログ ファイル c:\Users\User\Desktop\setup.etl を解析しています... 解析が完了しました。出力はファイル c:\users\user\desktop\log.txt に保存されました。 |
今度はログをtextに変換
================= アクティブ化コンテキストの生成を開始します。 入力パラメーター: Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = ja-JP;ja;en-US;en ManifestPath = C:\Users\User\Desktop\SetupMain.exe AssemblyDirectory = C:\Users\User\Desktop\ Application Config File = ----------------- 情報: マニフェスト ファイル C:\Users\User\Desktop\SetupMain.exe を解析しています。 情報: マニフェスト定義 ID は SetupSS.exe,processorArchitecture="X86",type="win32",version="1.0.0.0" です。 情報: 参照: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="X86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0" エラー: 7 行: XML 構文エラーです。 エラー: アクティブ化コンテキストの生成に失敗しました。 アクティブ化コンテキストの生成を終了します。 |
テキスト自体は読めてるけど、なんかおかしい。終了タグが認識できてないようだ
通常のマニフェストは 空白にしてスクリプトをコンパイルすると2バイトになるのですが…
…なぜか3バイトになる件について。
どーやら、ごみが入ってるようだ。
というわけで、いったん削除して、テキストからインポートしなおしたところちゃんと動作した ・ω・
Comments