質問者
ClickOnce機能の実行ファイルの置く場所を指定できますでしょうか

質問
すべての返信
-
指定できないと思います。
で、なぜ指定したいのでしょうか?ClickOnceで配置したプログラムはスタートメニューのショートカットから起動することが前提になっています。
実行ファイルを直接起動した場合、ハードディスクに普通にコピーされたアプリケーションと同じ扱いになってしまい、セキュリティ的な制限もかかりませんし、ClickOnceの特徴であるバージョンチェックも行われなかったと思います。なので、ショートカットから起動しないのであればClickOnceを利用する意味はほとんどありません。ということから考えて、実行ファイルの格納場所が指定できる必要はない、ということになるかと思います。
-
greenland さんからの引用 Cドライブの容量が足りない場合Dドライブとかに作成したいばあいはどうなるんでしょうか?
ClickOnce アプリケーション・ストアの場所を、 配布時に指定することはできません。
これはセキュリティ面から、 そのようにしてあるのだと思われます。 (可能にしてしまうと、 例えば "Program Files" 以外にインストールされている他者のプログラムを上書きできてしまいます。 --- Windows フォルダや "Program Files" フォルダへの上書きはシステム的に禁止できるでしょうが、 勝手なフォルダに入っている実行ファイルまでガードするのは難しいでしょう。)どうしてもという場合は、 その PC でレジストリを操作して、 "Documents and Settings" フォルダ自体を D ドライブに移動させることになるでしょう。
greenland さんからの引用 データファイルだけは実行する時、置く場所を自由に配置できるかとおもいますが
完全信頼 (Full Trust) でなければ、 ディスクに自由にアクセスすることはできなかったはずです。
少なくとも、 インターネットゾーンの部分信頼では、 \Documents and Settings\USERNAME\Local Settings\Apps\2.0\Data の下に割り当てられるフォルダ (ApplicationDeployment.CurrentDeployment.DataDirectory) に制限されるかと。# 完全信頼 (Full Trust) にしてしまえば、 それこそ好きな場所にプログラムを置き直すこともできます。
が、 それでは、 ClickOnce のアップデート機能も働かなくなります。
( ClickOnce のメリットを捨てるのであれば、 普通のインストールパッケージにすればいい、 ということ。 )参考:
・MSDN ライブラリ: .NET Framework 開発者ガイド - ClickOnce の配置とセキュリティ
・MSDN ライブラリ: .NET Framework 開発者ガイド - 既定のセキュリティ ポリシー
・@IT: ClickOnce の真実