.NET TIPS ClickOnceのログ・ファイルを特定の場所に作成するには?[2.0のみ]デジタルアドバンテージ 一色 政彦2006/06/16 |
|
|
ClickOnceでは、ソフトウェアの配布・更新に関する情報がログ・ファイル(以降、ClickOnceログ・ファイル)に記録される。特にエラーが発生した場所のコール・スタックのトレース情報が、このファイル内に記載されたりするので、ClickOnceでのトラブルシューティングではこのファイルが大変重宝する。
ClickOnceログ・ファイルは、デフォルトでは、wininetキャッシュ領域(=IE:InternetExplorerがブラウズしたファイルをキャッシュする場所と同じ)に格納され、自動的(=IEのキャッシュが削除されるタイミング)に削除される仕組みになっている。また、ClickOnceアプリケーションごとに1つのファイルが動的に作成される。
このため、エンドユーザーがそのファイルを手動で(=ファイル・パスを指定して)直接、参照することは難しい(基本的にできないと考えてよいだろう)。エンドユーザーがClickOnceログ・ファイルを参照できるのは、ClickOnceが実行されている最中にエラーが発生したときにのみ表示されるエラー・メッセージの[詳細]ボタンをクリックしたときである。次の画面は、エラー・メッセージの例だ。
ClickOnceログ・ファイルを参照できるClickOnceのエラー・メッセージ |
ClickOnceでは、その実行中にエラーが発生したときに表示されるエラー・メッセージにある[詳細]ボタンをクリックすることで、エラー・メッセージを参照できる。 |
ここで[詳細]ボタンをクリックすると、ClickOnceログ・ファイルがメモ帳で開かれる。
しかし、この後、エンドユーザーがメモ帳を閉じてしまうと、そのファイルの在りかが分からなくなってしまう。エンドユーザーからそのエラーが記載されたClickOnceログ・ファイルを受け取りたいというような場合には、これは問題である。そこで本稿では、ClickOnceログ・ファイルが作成される場所を指定することで、この問題を回避する方法を紹介する。
ClickOnceログ・ファイルが作成される場所を指定する方法
ClickOnceログ・ファイルが生成される場所を指定するには、次のレジストリ・キーの中に「LogFilePath」という名前の文字列値を作成し、その値のデータとしてファイル・パス(本稿の例では「C:\ClickOnceLogFile.txt」)を指定すればよい。
- レジストリ・キー:HKEY_CURRENT_USER\Software\Classes
\Software\Microsoft\Windows\CurrentVersion\Deployment
この作業により、エンドユーザーが次回以降のClickOnceアプリケーションを起動するたびに、レジストリに指定したファイルにログ情報が追記されていくはずだ。
なおここでの注意点は、指定したファイルは初期化されることなく、次々と<追記>されていくことである。また、すべてのClickOnceアプリケーションがこのファイルにログを書き込まれ、さらに、エラーではない実行ログも残ることになる。これらの事情を考慮すると、ClickOnceを使い続けるうちに、ClickOnceログ・ファイルが無駄に巨大になってしまう可能性があることが分かるだろう。
従って、「エンドユーザー環境でエラーが発生しているのでその内容をファイルとして保存してもらい受け取りたい」というケースなどで、<一時的>にこのClickOnceログ・ファイルの指定を利用するという使い方が好ましいだろう。
カテゴリ:Windowsフォーム 処理対象:ClickOnce |
|
「.NET TIPS」 |
更新履歴 | |||||
|
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|