Каталоги назначения BinPlace
BinPlace создает дерево каталогов для хранения файлов, которые он размещает. Структура этого дерева определяется параметрами, которые передаются в командную строку BinPlace, значениями определенных переменных среды и содержимым текстового файла, известного как файл размещения.
BinPlace будет размещать файлы, если выполняется одно из двух условий:
Файл указывается в командной строке BinPlace.
Файл представляет собой файл символов, расположенный в том же каталоге, что и связанный с ним исполняемый файл, и исполняемый файл указывается в командной строке. В этом случае файл символов и исполняемый файл будут помещены в разные каталоги. BinPlace также может выполнять разделение или удаление (см. раздел Общедоступные и закрытые символы) или удаление (см. раздел Файловые системы символов) в этом сценарии.
Когда BinPlace помещает файлы, он автоматически перезапишет старый файл с тем же именем. Однако По умолчанию BinPlace не будет перезаписывать более новый файл. В частности, если присутствует более новая (или идентичная) версия исполняемого файла, ни исполняемый файл, ни связанные файлы символов не будут записаны на диск. Если вы хотите, чтобы BinPlace перезаписывал файлы независимо от их метки времени, используйте параметр командной строки -f .
Назначения файлов
Имя каталога, в который BinPlace помещает любой файл, указанный в командной строке, создается путем объединения двух каталогов: корневого целевого каталога и подкаталога класса. (Каталоги могут иметь любые выбранные имена, но обычно корневой целевой каталог — это корень дерева каталогов, в котором размещаются файлы, а подкаталог класса — это подкаталог, в котором логично разместить определенный файл или группу файлов.)
Корневой целевой каталог можно указать с помощью параметра командной строки -r RootDestinationPath. Если этот параметр не указан, значение по умолчанию определяется переменной среды _NT386TREE, _NTIA64TREE или _NTAMD64TREE на компьютере на базе x86, Itanium или x64 соответственно. Корневой целевой каталог должен быть определен одним из следующих способов. Если он не определен, BinPlace не будет запускаться.
Подкаталог класса обычно указывается в файле места. Для одного файла можно указать несколько подкаталогов класса; Это приводит к тому, что BinPlace будет создавать копии файла и размещать их в каждом из указанных расположений. Подробные сведения см. в разделе Синтаксис файла размещения . Подкаталог класса также можно указать с помощью параметра командной строки -:D EST ClassPath.
Назначения файлов символов
Если исполняемый файл указан в командной строке BinPlace и в том же каталоге есть связанный файл символов, BinPlace также скопирует (или изменит) файл символов. Каталог, в который помещается этот файл символов, создается путем объединения трех каталогов: корневого каталога символов, подкаталога класса и подкаталога типа файла.
Корневой каталог символов можно указать с помощью параметра командной строки -s SymbolRoot. Если вы используете параметры -a и -x , удаляемые файлы символов будут помещены в каталог SymbolRoot . В этом случае можно использовать -n FullSymbolRoot, чтобы указать расположение полных файлов символов.
Подкаталог класса обычно указывается в файле места. Для одного файла можно указать несколько подкаталогов класса; Это приводит к тому, что BinPlace будет создавать копии файла и размещать их в каждом из указанных расположений. Подробные сведения см. в разделе Синтаксис файла размещения . Подкаталог класса также можно указать с помощью параметра командной строки -:D EST ClassPath. А если используется параметр командной строки -y , подкаталог класса не будет использоваться для файлов символов. Каталог назначения будет состоять просто из корневого каталога символов и подкаталога типа файла.
Подкаталог типа файла используется только для файлов символов. Он определяется расширением имени исходного исполняемого файла. Таким образом, файлы символов, связанные с .exe файлами, будут помещены в подкаталог EXE, файлы символов, связанные с библиотеками DLL, — в подкаталог DLL, а файлы символов, связанные с драйверами, — в подкаталог sys. Это соглашение помогает избежать конфликтов имен файлов, например, myprogram.exe и myprogram.dll могут иметь файлы символов с именем myprogram.pdb, но эти файлы символов будут размещаться в разных подкаталогах.
Существует одно исключение из этого алгоритма. Если ни -s , ни -n не заданы, полные файлы символов будут помещены в то же расположение, что и двоичные файлы.
Примечание Если вы перечислили имя файла символов в командной строке BinPlace, BinPlace переместит его, как и любой другой файл, и не будет проверять его содержимое. Чтобы использовать методы работы с файлами символов BinPlace, необходимо указать имя исполняемого файла, а не имя файла символов.