Version: 6000.3
语言: 中文
嵌入式依赖项
本地文件夹或 tarball 路径

锁定文件

锁定文件包含包管理器对项目的依赖关系解析结果。包管理器在解析包依赖关系图时使用锁定文件来提供确定性结果。当 Unity 包管理器计算出成功的分辨率时,它会将该分辨率存储在项目的Packages文件夹中的一个名为packages-lock.json.对项目清单每个 Unity 项目都有一个项目清单,用作包管理器的入口点。此文件必须在<project>/Packages目录。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及要查询包的任何包存储库。更多信息
请参阅术语表
或对可变您可以更改可变包的内容。这是不可变的反义词。只有本地包嵌入式包可变的。
请参阅术语表
包的清单(嵌入的或从本地文件夹安装的)可能会迫使包管理器重新计算已解析的包版本。但是,只要锁定文件中的包版本满足依赖项版本和解析策略所隐含的范围,该包就会保持该版本的锁定状态。

例如,这是锁定文件中的典型条目:

"com.unity.textmeshpro": {
  "version": "2.0.1",
  "depth": 0,
  "source": "registry",
  "dependencies": {
    "com.unity.ugui": "2.0.0"
  },
  "url": "https://packages.unity.com"
},
    etc.

当包管理器解决任何冲突时间接依赖关系当项目请求一个包本身“依赖”另一个包时,就会出现间或传递依赖关系。例如,如果您的项目依赖于alembic@1.0.7包,而包又取决于timeline@1.0.0package,则您的项目直接依赖于 Alembic,间接依赖于 Timeline。更多信息
请参阅术语表
,它会尝试重复使用尽可能多的锁定包。这保证了后续依赖项解析对同一组依赖项产生相同的结果。它还最大限度地减少了下载、解压或复制包等耗时的作。

如果没有仅包含锁定包的解决方案,则包管理器会选择风险最小的包集,优先选择补丁升级而不是次要升级或主要升级,以及次要升级而不是主要升级。事实上,您可以自定义升级的风险级别。有关详细信息,请参阅自定义解析策略

要强制刷新间接依赖项版本,请删除锁定文件。

不要手动修改锁定文件:包管理器会创建并维护锁定文件,因此它会覆盖您对文件所做的任何更改。

将锁定文件置于源代码控制之下,以便您可以一致地重现相同的包集,以确保您的项目随着时间的推移在不同的机器上保持一致。

禁用锁定文件

默认情况下,包管理器在成功计算依赖关系图时创建或更新锁定文件。如果看到意外结果,可以将 enableLockFile 属性设置为false以禁用锁定。但是,如果禁用锁定文件,包管理器会再次克隆 Git URL 包,这会导致性能下降和网络使用率增加。如果在两个分辨率之间将较新的提交推送到远程 Git 存储库,也可能导致不确定的结果。

嵌入式依赖项
本地文件夹或 tarball 路径