仲間の類人猿とスイレンとパドルホイール!
VS 2008 を使用して、C#/.NET/WPF で Windows デスクトップ アプリを開発しています。このアプリは、Vista および XP マシンにインストールして実行する必要があります。アプリをインストールするセットアップ/Windows インストーラー プロジェクトに取り組んでいます。
私のアプリでは、SQLCE データベース ファイル (.sdf) と、使用しているサードパーティ コントロールに関連するその他のデータベース タイプのファイルへの読み取り/変更/書き込みアクセスが必要です。これらのファイルは、PC 上のすべてのユーザー/ログイン間で共有する必要があり、いずれも管理者である必要はありません。もちろん、これは、ファイルをプログラム自体のインストール ディレクトリに入れることができないことを意味します (Vista が登場する前はよくあることでした)。
解決策は簡単だと思っていました。Vista と XP の両方に、この目的のための共有アプリケーション データ フォルダがあります。(Vista では「\ProgramData」、XP では「\Documents and Settings\All Users\Application Data」。) .NET Environment.GetFolderPath(SpecialFolder.CommonApplicationData) 呼び出しは、特定の PC 上のこれらのフォルダーへのパスを見つけるために存在します。 、 はい!
しかし、Shared-application-data フォルダーを Setup プロジェクトのターゲットとして指定する方法がわかりません。
セットアップ プロジェクトは "Common Files" フォルダーを提供しますが、これは共有プログラム コンポーネント (データ ファイルではない) を対象としており、通常は "\Program Files" の下にあり、"\Program files" の他のフォルダーと同じセキュリティ制限があります。はいはい!
Setup プロジェクトは "User's Application Data" フォルダーを提供しますが、それはユーザーごとのフォルダーであり、まさに私が避けようとしているものです。
VS 2008 セットアップ プロジェクトから、堅牢なクロス Windows バージョンの方法で shared-app-data フォルダーにファイルを追加することは可能ですか? 誰でも方法を教えてもらえますか?