2012-02-09 5 views
2

私は、すべてのユーザー用に、または現在のユーザー用にのみインストールするオプションを備えた基本インストーラを用意しています。この選択に基づいて、共通のアプリデータまたはローカルのアプリデータにいくつかのファイルをコピーします。インストーラオプションはアプリケーションで利用できますか?

私の質問は、アプリケーションにこれらのファイルがインストールされている場所を知らせる方法です。ハードコーディングされたパスを提供することを意味するのではなく、Environment.SpecialFolder.LocalApplicationData(シングルユーザー)とEnvironment.SpecialFolder.CommonApplicationData(すべてのユーザー)の中から選択する機能を提供するようなものです。

+1

いつも同じ場所に置くのは簡単ではないでしょうか?私はこの作業が「完了」していれば、ファイルをある場所から別の場所に移動するためにCustomActionを使用しています。もちろん、単純な解決方法とMicrosoftが示唆するものは、常にファイルをCommonApplicationDataフォルダに置くことです。 –

+0

@Ramhound - 私は同意します。あなたが権限を執行することができれば簡単です([セットアッププロジェクトはこれをサポートしています](http://msdn.microsoft.com/en-us/library/5f981xa1.aspx))。インストーラの配布手段を管理していないため、困難であることが判明する可能性があります。 – SliverNinja

+0

それは意味をなさない。しかし、私はユーザーアカウント制御の制限について心配しています。私たちは何も実装したくないだけでなく、Windowsセキュリティの問題で心配することなく、データを保持するためにユーザーフォルダを使用したいと思っています。 CommonApplicationDataフォルダにデータを書き込むために昇格された権限が必要ですか? – Paul

答えて

1

ALLUSERScustom action dataを、インストーラクラスCustom Actionsを使用してインストーラクラスに送信してください。

Regassmを使用して.NETアセンブリを登録するのは、custom action installer exampleです。

インストーラのカスタムアクションデータとカスタムアクションデータを取得したら、アプリケーションがレジストリ、アプリケーションの設定、またはディスク上の固定された場所のいずれかにアプリケーションを取得できる場所に格納できます。

1

アプリケーションからどのフォルダにデータがあるかを簡単に把握するには、LocalApplicationDataをチェックし、何かがある場合はそれを使用します。それ以外の場合はCommonApplicationDataフォルダを確認します。

関連する問題