ClickOnceでインストールしたアプリの配置場所

先日、試しに作ってみた簡単なアプリケーションを会社のPCにインストールしてみたのですが、exeファイルがなかなか見当たりません。スタートメニューには登録されていて実行できるのですが、コンソールアプリケーションなので黒い窓(DOSプロンプト)が一瞬開いてすぐ閉じてしまう状態。バッチで処理を自動化しようと考えていたのですが、どこに実行ファイルがあるのか分からず、これでは上手くいきません。そこでGoogleで検索したところ、以下のような説明を見つけました。

クライアント側ではClickOnceによりインストールされたアプリはDocuments and Settings\ユーザ\Local Settings\Apps以下に配置される。

なるほど、と思って「Apps」フォルダを開いてみると中には「2.0」というフォルダのみ。この中にアプリケーションごとにフォルダがあるんだろうな、と思って開いてみると「Data」というフォルダと意味不明な名前のフォルダしかありません。Explorerをたどってファイルを見つけるのは困難そうだったので検索してみると、意味不明な名前のフォルダの深い階層にexeファイルがありました。バージョンアップ時の自動更新などに対応するために、このような場所に保存されているのだと思いますが、ちょっと不便な気がします。

見つけたexeファイルを別フォルダにコピーして実行しても正しく動作したので、今回はそのやり方で対応することにしました。おそらく.NET Framework 2.0がインストールされていれば動くんでしょうね。ちなみにアプリケーションは「プログラムの追加と削除」からアンインストールしてしまっても問題ないです。ただ、バージョンアップ時の自動更新などは出来ないはず。(そもそも、今回は発行する時に「Webサイトから」のインストールを選択していないので、自動更新は関係ないのですが。)

コンソールアプリケーションの場合、引数を渡して処理をさせるケースが多いと思います。ClickOnceでインストールして、スタートメニューからの実行するやり方では引数を渡せないので使い物にならないと思いました。ビルドしたexeファイルをzip圧縮してインストール不要なアプリケーションとして配布する今までのやり方の方が便利に思えた月曜日。