ClickOnceアプリケーションかどうかを自分自身で知る[ClickOnce][Visual Studio Express 2010]

自分自身が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』フォルダは隠しフォルダでふつうは見えないはず。