位置文件语法

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

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

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

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


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

就地文件中的每一行都遵循以下规则:

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

FileNameClass 字段的说明如下:

参数

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 内部版本:

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

哈尔

变为 system32

打印机

成为 system32\spool\drivers\w32x86

prtprocs

成为 system32\spool\prtprocs\w32x86

对于 AMD64 内部版本:

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

哈尔

变为 “..”例如,如果根目标目录为 C:\Binaries\Amd64,则文件将放置在 C:\Binaries 中。

删除了一个目录的符号路径。

打印机

成为 system32\spool\drivers\w32amd64

prtprocs

成为 system32\spool\prtprocs\w32amd64

对于 IA64 内部版本:

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

哈尔

变为 “..

删除了一个目录的符号路径。

打印机

成为 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 将忽略分号后的任何文本。