2016-12-07 12 views
0

MyApplicationという名前のアプリケーションがある場合は、このアプリケーションのローカルAppDataディレクトリのカスタムロケーションを使用できますか?例:C:\Users\User1\AppData\Local\MyApplication2。私はどのようにこれを変更するには見つけることができません。アプリケーションのデバッグおよびリリースビルドに異なるAppDataフォルダを使用する

EDIT

明確化:私はC:\Users\User1\AppData\Local\MyApplication2と呼ばれる補助directoyを作成する必要はありません。私はシステムがC:\Users\User1\AppData\Local\MyApplication2を実際のローカルAppDataディレクトリとしてMyApplicationと認識するようにします。

EDIT 2:

私は実際に両方のデバッグを持っており、現実にできるだけ近いものにするために、自分のコンピュータにインストールされたバージョンをリリースする方法が必要です。これまでは、アプリケーションのインストール先やアプリケーションレベルのIDを変更することができましたが、AppDataを変更して、それぞれ異なる設定ファイルを使用することはできませんでした。

+0

好奇心の高まりから、これは何を達成すると思いますか?これはシステム全体の設定なので、%LOCALAPPDATA%を使用する他のアプリ(またはOS自体)が、あなたのアプリケーションフォルダの下にフォルダを作成することになります。 –

+0

現実に可能な限り近づくためには、コンピュータにデバッグ版とリリース版の両方をインストールする必要があります。これまでは、アプリケーションのインストール先やアプリケーションレベルの識別情報を変更することができましたが、それぞれが異なる設定ファイルを使用するためには 'AppData'を変更することはできませんでした。 –

+0

なぜLOCALAPPDATAのOSの場所全体を変更する必要がありますか? 2つのフォルダ(%LOCALAPPDATA%\ MyApp \ Debugと%LOCALAPPDATA%\ MyApp \ Release)とコンパイラの定義またはコマンドラインスイッチ、またはデバッグかリリースかに応じて、適切なフォルダを使用します。例:#IFDEF DEBUG –

答えて

2

マシン上でコードを開発する際に場所を変更したい場合は、{localappdata}の場所を移動する必要はありません。実際、Inno Setupをこれに関与させる必要はありません。

コンパイラ定義の値に基づいてコード内にローカル変数を定義するだけです(たとえば、#IFDEF DEBUGなど)。インストール中に%LOCALAPPDATA%\ MyApplication2フォルダを作成します。 DEBUGが定義されている場合は、デバッグフォルダから設定情報を読み書きするために、実行時にその場所に追加します(開発中)。

私はあなたがコーディングしているどのような言語か分からないが、Delphiで、それはこのようなものになるだろう:

{$IFDEF DEBUG} 
const 
    ConfigDir = 'Debug\'; 
{$ENDIF} 

// At application startup, retrieve the contents of %LOCALAPPDATA% via API call 
// or by retrieving the contents of the environmental variable (say into the 
// DataDir variable). Then... 
{$IFDEF DEBUG} 
DataDir := DataDir + ConfigDir; 
// If needed, you can check here for whether the folder exists and 
// create it if it doesn't. 
{$ENDIF} 

今すぐ設定情報にアクセスするすべてのコードは、ちょうどDataDirからそれを取得し、そのデバッグモードであるかリリースモードであるかに基づいて調整されます。

関連する問題