2016-12-07 4 views
0

Wenn ich eine Anwendung mit dem Namen MyApplication habe, ist es möglich, einen benutzerdefinierten Speicherort für den lokalen AppData Verzeichnis dieser Anwendung zu haben? Zum Beispiel: C:\Users\User1\AppData\Local\MyApplication2. Ich kann nirgendwo anders finden, wie ich das ändern kann.Verwenden Sie verschiedene AppData-Ordner für Debug und Release-Builds einer Anwendung

EDIT

Klarstellung: Ich will keine Hilfs Directoy C:\Users\User1\AppData\Local\MyApplication2 genannt erstellen. Ich möchte, dass das System C:\Users\User1\AppData\Local\MyApplication2 als das tatsächliche lokale AppData -Verzeichnis von MyApplication erkennt.

EDIT 2:

Ich brauche wirklich eine Möglichkeit, sowohl debug zu haben und Versionen auf meinem Computer installiert, um loslassen so nah wie möglich an der Realität zu sein. Bis jetzt habe ich es geschafft, zu ändern, wo die Anwendung installiert ist und andere Anwendungsebenenidentifikatoren, aber ich konnte die AppData nicht ändern, damit jeder von ihnen verschiedene Einstellungsdateien verwendet.

+0

Aus Neugier, was würden Sie erwarten, dies zu erreichen? Es ist eine systemweite Einstellung. Sie müssen es also so einrichten, dass jede andere Anwendung (oder das Betriebssystem selbst), die% LOCALAPPDATA% verwendet, am Ende ihre Ordner unterhalb des Anwendungsordners erstellt. –

+0

Ich brauche wirklich eine Möglichkeit, sowohl Debug- als auch Release-Versionen auf meinem Computer zu installieren, um so nah wie möglich an der Realität zu sein. Bis jetzt habe ich es geschafft, zu ändern, wo die Anwendung installiert ist und andere Anwendungsebenen-Identifikatoren, aber ich konnte die 'AppData' nicht ändern, damit jede von ihnen verschiedene Einstellungsdateien verwendet. –

+0

Warum müssen Sie den gesamten Betriebssystemstandort von LOCALAPPDATA ändern? Erstellen Sie zwei Ordner (% LOCALAPPDATA% \ MyApp \ Debug und% LOCALAPPDATA% \ MyApp \ Release) und einen Compiler define oder command line switch oder was auch immer, abhängig davon, ob es debug oder release ist, um den entsprechenden Ordner zu verwenden. Z. B. #IFDEF DEBUG. –

Antwort

2

Sie müssen den Standort {localappdata} nicht verschieben, wenn Sie nur den Standort ändern möchten, während Sie Ihren Code auf Ihrem Computer entwickeln. In der Tat, es ist nicht nötig, Inno Setup überhaupt dazu zu bewegen.

Definieren Sie einfach eine lokale Variable in Ihrem Code basierend auf dem Wert eines Compilers definieren (wie zum Beispiel #IFDEF DEBUG). Erstellen Sie während der Installation den Ordner% LOCALAPPDATA% \ MyApplication2. Wenn DEBUG definiert ist, fügen Sie zur Laufzeit (das wäre während der Entwicklung) an diesen Speicherort an, um Ihre Konfigurationsinformationen aus einem Debug-Ordner zu lesen/schreiben.

Ich weiß nicht, welche Sprache Sie Codierung in, aber in Delphi würde es in etwa so gehen:

{$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} 

Jetzt alle Ihre Code die config info Zugriff es nur ruft aus DataDir, die passt sich daran an, ob Sie sich im Debug- oder Release-Modus befinden.

Verwandte Themen