2


0

  • AppDataフォルダにアプリケーションをインストールしてもかまいませんか?*両方Google Talk それらはユーザのAppDataフォルダにインストールされます。 MicrosoftはClickOnceでも同じことをしています…​

自分のアプリケーションを自己更新したいのですが、Program Filesフォルダにインストールすると失敗します。 Windows Vista(2008および7)では、アプリケーションはProgram Filesフォルダに書き込むことができません。 私はUACが責任があることを理解していますが、それは私のアプリケーションが自己更新するのを防ぎます。

セキュリティ問題を回避するためにAppDataフォルダにデプロイしたい場合は、* MSIセットアッププロジェクトにAppDataへのインストールをどのように指示すればよいですか。 何か案が?

ありがとうございます。

更新:証明書が必要なのでClickOnceを使うことはできません。 私は証明書に200ドル/年を使いたくありません。

5 Answer


5


clickonceの展開はVS 2008以降では署名されない


2


あなたはキーポイントを間違えています:

_ UACが責任を負うことを理解しています _

本当じゃない。 標準ユーザーとして実行している場合、XPでも同じ規則が適用されます。これは、多くの企業環境で当てはまります。 これはUACではなく、Windowsがフォルダに対するアクセス許可を設定する方法であり、仕様によるものです。

あなたは自分自身の質問に答えました。AppDataフォルダにインストールしたいのなら、ClickOnceインストーラを使うだけです。


1


どの自己更新フレームワークを使用していますか?

ClickOnceの当初の目標の1つは、影響のないインストール方法です。 インストールはXCOPYにすぎず、システムの他の部分と混同しないことが事実上保証されています。 これは、MSがプログラムファイルよりもAppDataを選択した理由の一部です。 AppDataにファイルを書き込むだけでは、システム全体が破損する可能性ははるかに低いです。

あなたのカスタムフレームワークが自己更新であり、そしてまたシングルユーザー、低インパクトインストールを持ちたいなら、AppDataは悪い選択ではないかもしれません。 実際にはUsersディレクトリの下にあるものはすべてProgram Filesより良い場所です。


1


Windows 7では、新しいMSI 5.0は、UAC昇格を必要としない真の「ユーザーごとの」インストールをサポートします - ユーザーごとのProgram Filesディレクトリがあります。 これがPDCの話題です。


0


Trueしかし私はVistaで非常に奇妙な振る舞いを観察しました、私は私のmsiでappdatafolderプロパティを使用しました、そしてそれは今インストールされるために管理者特権が必要同じアプリケーションを提供した場合、パスワードはインストールされますが、標準ユーザーのアプリデータフォルダにはインストールされません。管理者アプリデータフォルダにインストールされます。