桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

続・デバッガなし環境での実行 (1)

d:id:youandi:20110311#p1
ウチの会社の別のプロジェクトでも、VisualStudioのインストールされていない環境での実行がうまくいかない問題で悩んでいたので、ちょっと首を突っ込んだら、以前に解決した方法を残していなくて困ったので残しておく。

    1. 実行環境のレジストリ設定でログ出力を有効にする。
      • 「HKLM\Software\Microsoft\Fusion」にDWORD型で「EnableLog」の項目を追加し値を「1」に設定する。
    2. 上記のログビューワ(Fuslogvw.exe)を開発環境から実行環境にコピーする。開発環境の場合はスタートメニューに「Fusion ログ ビューアー」で登録されている。
    3. 実行環境で上記のログビューワを起動し、「ログの設定」画面で出力設定を有効にする。
      • 「バインドの失敗をディスクに記録する」を選択する。
      • 「カスタムログのパス」には存在するフォルダ名をフルパスで指定する
        • カスタムログの設定は行わなくても、システムのデフォルトの出力先には出力される気がする。
    4. あとは問題の発生しているプログラムを実行して現象を再現させ、ログビューワの表示更新を行う。

そのプロジェクトでの原因は、インストーラーの作成時に必要なランタイムDLLを一つ拾ってくれなくて、ランタイムのロードエラーとなっていた模様。MFCVC++アプリからWinFormのグリッドコントロールを使うというちょっとマニアックなプログラムだったけど。


あと、確認が完了したなら、必ずログの出力設定を無効にする事。パフォーマンスに影響するかも。