BinPlace 目的地目錄
BinPlace 會建立目錄樹狀目錄來保存其放置的檔案。 該樹狀結構取決於傳遞至 BinPlace 命令列的參數、特定環境變數的值,以及稱為 放置檔案之文字檔的內容。
如果符合兩個條件之一,BinPlace 將會放置檔案:
檔案是在 BinPlace 命令列上指定。
檔案是位於與其相關聯可執行檔相同的目錄中的符號檔,而且可執行檔是在命令列上指定。 在此情況下,符號檔和可執行檔將會放在不同的目錄中。 BinPlace 也可以執行分割或等量分割 (請參閱 公用符號和私人符號) 或等量分割 (請參閱此案例中的 符號檔案系統) 。
當 BinPlace 放置檔案時,它會自動以相同名稱覆寫較舊的檔案。 不過,根據預設,BinPlace 不會覆寫較新的檔案。 特別是,如果有較新的 (或) 相同的可執行檔版本,可執行檔或任何相關聯的符號檔都不會寫入磁片。 如果您希望 BinPlace 覆寫檔案,而不論其時間戳記為何,請使用 -f 命令列選項。
檔案目的地
BinPlace 在其命令列上放置任何指定檔案的目錄名稱,是藉由串連兩個目錄來建立: 根目的地目錄 和 類別子目錄。 (目錄可以有您選擇的任何名稱,但根目的地目錄通常是您要放置檔案之目錄樹狀目錄的根目錄樹狀目錄,而類別子目錄則是一個子目錄,其中放置特定檔案或檔案群組看起來很邏輯。)
您可以使用 -r RootDestinationPath 命令列參數來指定根目的地目錄。 如果省略此專案,則預設值是由 x86 型、Itanium 型或 x64 型電腦上的_NT386TREE、_NTIA64TREE或_NTAMD64TREE環境變數所決定。 根目的地目錄必須以下列其中一種方式定義;如果完全未定義,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 的符號檔操作技術,您必須列出可執行檔名稱,而不是符號檔案名。