二進位快取
vcpkg 公用登錄中的大部分埠都是從來源建置的。 透過從來源建置,vcpkg 可以使用相同的環境、建置工具、編譯程式旗標、連結器旗標,以及您在專案中用來建置相依性的其他組態,以確保最大的相容性。
啟用二進位快取時,從來源建置每個套件之後,vcpkg 會 建立二進位套件。 二進位套件會保存套件的組建輸出:二進位檔、建置系統整合檔案、使用檔、授權和其他檔案。 如果稍後的執行需要安裝快取的套件,vcpkg 會決定是否要還原快取的二進位套件,還是從來源觸發組建。
如此一來,二進位快取可減少從來源建置下列缺點的影響:
- 重複的工作: 藉由減少需要從來源建置套件的次數。
- 長時間建置時間: 還原二進位套件通常是一項非常快速的作業,需要幾秒鐘的時間才能完成。
在 CI 案例中,二進位快取特別有效,其中暫時容器或建置代理程式會強制 vcpkg 每次使用 clean-slate。 藉由使用雲端式二進位快取(例如 GitHub 套件 或 Azure DevOps Artifacts),您可以在執行之間保存二進位套件,以確保最大速度,因為只有在您對相依性或設定進行變更時才會發生重建。
提示
建議為每個持續整合管線或工作流程建立具有讀取和寫入許可權的二進位快取。 個別開發人員應該具有 CI 產生的二進位快取的唯讀存取權。
二進位快取可以裝載於各種環境中。 二進位快取的最基本形式是本機計算機或網路檔案共用上的資料夾。 快取也可以儲存在任何 NuGet 摘要中(例如 GitHub Packages 或 Azure DevOps Artifacts)、Azure Blob 儲存體、Google Cloud Storage 和其他許多服務。
如果您的 CI 提供者提供原生「快取」函式,建議您同時使用 vcpkg 二進位快取和原生方法,以取得最高效能的結果。
重複使用二進位快取以進行開發
雖然不建議作為二進位散發機制,但二進位快取可用來重複使用多個系統的組建輸出。 例如,開發人員可以使用 CI 在其本機電腦上執行的二進位套件。 如需重複使用和整合 vcpkg 產生的二進位檔的其他方法,請參閱 vcpkg export
。
例如,您可以設定 裝載在 Azure Artifacts 上的 NuGet 摘要,以接受從 CI 管線建置的二進位套件,並在開發環境中重複使用這些套件。
您必須設定 Azure Artifacts 摘要,以 授與 Azure DevOps 管線 的讀取和寫入許可權,以及授與開發小組中主機的只讀許可權。
默認二進位快取
預設會啟用二進位快取,提供者位於下列第一個files
有效位置:
- Windows
%VCPKG_DEFAULT_BINARY_CACHE%
%LOCALAPPDATA%\vcpkg\archives
%APPDATA%\vcpkg\archives
- 非 Windows
$VCPKG_DEFAULT_BINARY_CACHE
$XDG_CACHE_HOME/vcpkg/archives
$HOME/.cache/vcpkg/archives
透過提供 vcpkg help binarycaching
減少的工具內說明。
二進位快取只涵蓋您建置的二進位檔。 若要快取來源檔案和預先建置的工具,請參閱 資產快取。
下一步
閱讀教學課程,以瞭解如何設定二進位快取和 組態語法參考: