位置文件语法

注意 ,放置文件现已过时,不应使用。 。

放置文件是 BinPlace 读取的文本文件,用于确定与放置的文件关联的类子目录。

此文件的路径和名称由 -p PlaceFile 命令行参数指定。 如果未使用,则默认值为 \tools\placefil.txt。 一个位置文件可以包含任意数量的行。 每行列出一个文件和一个类子目录。 列出文件不会导致 BinPlace 执行任何操作。 相反,每当 BinPlace 在命令行上提供文件名时,它将打开位置文件以查看该文件是否已列出。 如果是,BinPlace 将使用在该特定文件的放置文件中指定的类子目录。

一个位置文件的每一行具有相同的格式。


     FileName Class[:Class[...]   [ ; Comment ] 

位置文件中的每一行都遵循以下规则:

  • FileName 字段必须开始该行。
  • FileName字段必须用一个或多个空格分隔。
  • 如果行上的任意位置出现分号,则其右侧的所有内容都被视为注释。
  • 允许使用以分号开头的空白行和注释行。

FileName字段如下所述:

参数

文件名
一个字段,指定 BinPlace 可以处理的文件的名称。 FileName 必须包含文件扩展名,但不能包含文件路径。 (将在 BinPlace 命令行上指定文件路径。


一个字段,指定用于此文件的类子目录。 除非使用 -y-:D EST 命令行开关,否则 BinPlace 会将文件放在创建目录中,方法是获取根目标目录、追加类子目录,然后追加文件类型子目录。 有关完整详细信息,请参阅 BinPlace 目标目录

不应以反斜杠开头或结尾。 目录名称不得包含空格。 类值内可以使用特殊字符串。 字符串的效果与可执行文件和符号文件的位置不同。 下表显示了这些字符串的结果。

对于所有内部版本:

字符串 对可执行文件的影响 对符号文件的影响

零售

已忽略。 将跳过此目录级别。

被视为名为 retail 的文本目录。

*

在 x86 计算机上: i386。 在基于 Itanium 的计算机上: IA64。 在基于 x64 的计算机上: AMD64

已忽略。 将跳过此目录级别。

系统

成为 system32

system16

成为系统

windows

变为“.”忽视。 将跳过此目录级别。

符号路径为 零售

司机

成为 system32\drivers

drvetc

成为 system32\drivers\etc

config

成为 system32\config

对于 x86 内部版本:

字符串 对可执行文件的影响 对符号文件的影响

hal

成为 system32

打印机

成为 system32\spool\drivers\w32x86

prtprocs

成为 system32\spool\prtprocs\w32x86

对于 AMD64 版本:

字符串 对可执行文件的影响 对符号文件的影响

hal

变成“.”。例如,如果根目标目录为 C:\Binaries\Amd64,则该文件位于 C:\Binaries 中。

符号路径已剥离一个目录。

打印机

成为 system32\spool\drivers\w32amd64

prtprocs

成为 system32\spool\prtprocs\w32amd64

对于 IA64 版本:

字符串 对可执行文件的影响 对符号文件的影响

hal

变成“.”。

符号路径已剥离一个目录。

打印机

成为 system32\spool\drivers\w32ia64

prtprocs

成为 system32\spool\prtprocs\w32ia64

除非另有说明,否则符号路径将被截断,以仅包含路径中的第一个目录。 例如,如果使用 BinPlace 移动名为Build.exe具有打印机目标类的 x86 文件,则可以使用以下命令语法:

binplace -r BinaryRoot  -xa -s SymbolsDir1 -n SymbolsDir2 SourceFileLocation\build.exe

该命令将导致以下输出树:

<SymbolsDir1>\system32\exe\build.pdb
<SymbolsDir2>\system32\exe\build.pdb 
<BinaryRoot>\system32\spool\drivers\w32x86\build.exe 

对于 AMD64 和 IA64 内部版本,请谨慎使用 hal 类,因为 BinPlace 结果可能不是预期的结果。 例如,如果根目标目录为 C:\Binaries\Amd64,并且指定 了 hal 类,则该文件将放置在 C:\Binaries 中,而不是你可能打算使用的 processor-specifc 目录中。

如果希望将文件放置在多个位置,则可以包含由冒号分隔的类多个实例。 目录和冒号之间不得有空格。 例如:

someprogram.exe   dir1\dir2\dir3:otherdir1\otherdir2   ; To two locations

评论
BinPlace 将忽略分号后的任何文本。