自分自身がClickOnceアプリケーションかどうかを見分けるには、
System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed
を使う。自分自身のパス名は、
Application.ExecutablePath
で分かる。それから、発行タブの『バージョンの発行』で指定したバージョン番号を参照するのは(とりあえず全体は)
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion
で分かる。これらを組み合わせると、次のような確認が出来る。
if (!System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed) { MessageBox.Show("ClickOnce を使用していません。"); System.Diagnostics.Debug.WriteLine("ClickOnce を使用していません。"); } else { MessageBox.Show("ClickOnce を使用しています。"); System.Diagnostics.Debug.WriteLine("ClickOnce を使用しています。"); MessageBox.Show(System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString() + System.Environment.NewLine + Application.ExecutablePath.ToString() ); }
この結果、ClickOnceアプリケーションの実体が格納されているのは、
C:\Documents and Settings\【ユーザ名.コンピュータ名】\Local Settings\Apps\2.0\【ランダムな(?)文字列】\【何だか訳の分からない文字列】
というフォルダ内の
【実行ファイル名(小文字変換されたもの)】.【何だか分からない滅茶苦茶な文字列】
というフォルダが(更新回数分?)いっぱいあるどれかであって、その中がプロジェクトのbinフォルダと同じファイル構成になっている。ちなみに『Local Settings』フォルダは隠しフォルダでふつうは見えないはず。