BinPlace-Zielverzeichnisse
BinPlace erstellt eine Verzeichnisstruktur, in der die dateien gespeichert werden, die er platziert. Die Struktur dieser Struktur wird durch die Parameter bestimmt, die an die Befehlszeile von BinPlace übergeben werden, die Werte bestimmter Umgebungsvariablen und der Inhalt einer Textdatei, die als Ortsdatei bezeichnet wird.
BinPlace platziert Dateien, wenn eine von zwei Bedingungen erfüllt ist:
Die Datei wird in der BinPlace-Befehlszeile angegeben.
Die Datei ist eine Symboldatei, die sich im selben Verzeichnis wie die zugehörige ausführbare Datei befindet, und die ausführbare Datei wird in der Befehlszeile angegeben. In diesem Fall werden die Symboldatei und die ausführbare Datei in verschiedenen Verzeichnissen abgelegt. BinPlace kann in diesem Szenario auch das Aufteilen oder Stripping (siehe öffentliche Symbole und private Symbole) oder das Stripping (siehe Symboldateisysteme) durchführen.
Wenn BinPlace Dateien platziert, wird automatisch eine ältere Datei mit demselben Namen überschrieben. BinPlace überschreibt jedoch standardmäßig keine neuere Datei. Insbesondere, wenn eine neuere (oder identische) Version einer ausführbaren Datei vorhanden ist, werden weder die ausführbare Datei noch zugehörige Symboldateien auf den Datenträger geschrieben. Wenn BinPlace Dateien unabhängig vom Zeitstempel überschreiben soll, verwenden Sie die Befehlszeilenoption -f .
Dateiziele
Der Name des Verzeichnisses, in das BinPlace eine beliebige Datei platziert, die in der Befehlszeile angegeben ist, wird erstellt, indem zwei Verzeichnisse verkettet werden: das Stammzielverzeichnis und das Klassenunterverzeichnis. (Die Verzeichnisse können beliebige Namen haben, die Sie auswählen, aber in der Regel ist das Stammzielverzeichnis der Verzeichnisstruktur, in der Sie Ihre Dateien platzieren, und das Klassenunterverzeichnis ist ein Unterverzeichnis, in dem es logisch erscheint, eine bestimmte Datei oder Gruppe von Dateien zu platzieren.)
Das Stammzielverzeichnis kann mithilfe des Befehlszeilenparameters -r RootDestinationPath angegeben werden. Wenn dies nicht angegeben wird, wird der Standardwert durch die _NT386TREE, _NTIA64TREE oder _NTAMD64TREE Umgebungsvariable auf einem x86-basierten, Itanium-basierten oder x64-basierten Computer bestimmt. Das Stammzielverzeichnis muss auf eine der folgenden Arten definiert werden. wenn es überhaupt nicht definiert ist, wird BinPlace nicht ausgeführt.
Das Klassenunterverzeichnis wird normalerweise in der Ortsdatei angegeben. Es ist möglich, mehrere Klassenunterverzeichnisse für eine Datei anzugeben. Dies führt dazu, dass BinPlace Kopien der Datei erstellt und sie an jedem der angegebenen Speicherorte platziert. Ausführliche Informationen finden Sie unter Platzieren der Dateisyntax . Das Klassenunterverzeichnis kann auch mithilfe des Befehlszeilenparameters -:D EST ClassPath angegeben werden.
Ziele der Symboldatei
Wenn eine ausführbare Datei in der Befehlszeile von BinPlace aufgeführt ist und sich eine zugeordnete Symboldatei im selben Verzeichnis befindet, kopiert (oder ändert) Auch BinPlace die Symboldatei. Das Verzeichnis, in dem sich diese Symboldatei befindet, wird erstellt, indem drei Verzeichnisse verkettet werden: das Symbolstammverzeichnis, das Unterverzeichnis der Klasse und das Unterverzeichnis dateityp.
Das Symbolstammverzeichnis kann mithilfe des SymbolRoot-Befehlszeilenparameters -s angegeben werden. Wenn Sie die Schalter -a und -x verwenden, werden striped-Symboldateien unter dem SymbolRoot-Verzeichnis abgelegt. In diesem Fall können Sie -n FullSymbolRoot verwenden, um den Speicherort der vollständigen Symboldateien anzugeben.
Das Klassenunterverzeichnis wird normalerweise in der Ortsdatei angegeben. Es ist möglich, mehrere Klassenunterverzeichnisse für eine Datei anzugeben. Dies führt dazu, dass BinPlace Kopien der Datei erstellt und sie an jedem der angegebenen Speicherorte platziert. Ausführliche Informationen finden Sie unter Platzieren der Dateisyntax . Das Klassenunterverzeichnis kann auch mithilfe des Befehlszeilenparameters -:D EST ClassPath angegeben werden. Und wenn der Befehlszeilenschalter -y verwendet wird, wird kein Klassenunterverzeichnis für Symboldateien verwendet. Das Zielverzeichnis besteht einfach aus dem Symbolstammverzeichnis und dem Dateitypunterverzeichnis.
Das Dateitypunterverzeichnis wird nur für Symboldateien verwendet. Sie wird durch die Dateinamenerweiterung der ursprünglichen ausführbaren Datei bestimmt. Daher werden Symboldateien, die .exe Dateien zugeordnet sind, in einem Exe-Unterverzeichnis platziert, Symboldateien, die DLLs zugeordnet sind, in einem DLL-Unterverzeichnis und Symboldateien, die Treibern zugeordnet sind, in einem Unterverzeichnis sys platziert. Diese Konvention trägt dazu bei, Dateinamenkonflikte zu vermeiden, z. B. myprogram.exe und myprogram.dll möglicherweise beide Symboldateien mit dem Namen myprogram.pdb haben, aber diese Symboldateien werden in verschiedenen Unterverzeichnissen platziert.
Es gibt eine Ausnahme für diesen Algorithmus. Wenn weder -s noch -n angegeben wird, werden die vollständigen Symboldateien an demselben Speicherort wie die Binärdateien platziert.
Hinweis Wenn Sie den Namen der Symboldatei in der Befehlszeile von BinPlace auflisten, wird er wie jede andere Datei von BinPlace verschoben, und der Inhalt wird nicht untersucht. Um die Techniken zur Bearbeitung von Symboldateien von BinPlace zu verwenden, müssen Sie den Namen der ausführbaren Datei und nicht den Namen der Symboldatei auflisten.