Unity 6.3
0 онлайн 36 гостей 3 в системе
Вход

Блокировка файлов

Файл блокировки содержит результаты Package Manager’s разрешение зависимости для проекта.

Диспетчер пакетов использует файлы блокировки для обеспечения детерминистический результат при разрешении график зависимости пакетов. Когда Unity Package Manager вычисляет успешное разрешение, он хранит это разрешение внутри проекта Packages папка в JSON файл вызван packages-lock.json● Любое изменение в проектном документе или в пользовательские или местные манифест пакета может вызвать Package Manager но до тех пор, пока версия пакета в файле блокировки удовлетворяет диапазону, подразумеваемому версией зависимости, и диапазону, подразумеваемому версией стратегии урегулирования, пакет остается заблокированным в этой версии.

Например, вот типичная запись в файле блокировки:

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

Когда Package Manager урегулирует любые коллизии косвенные зависимости, он пытается повторно использовать как можно больше заблокированных пакетов. Это гарантирует, что последующее разрешение зависимостей даёт одинаковые результаты для одного и того же набора зависимостей. Кроме того, это минимизирует затратные операции, такие как загрузка, извлечение или копирование пакетов.

Если нет решения, которое включает только заблокированные пакеты, то Package Manager выбирает набор пакетов с наименее рискованными обновлениями, предпочитая обновления с исправлениями незначительным или крупным обновлениям, а незначительным обновлениям крупным обновлениям. Фактически, вы можете настроить уровень риска для обновления. Дополнительные сведения см. в Настройка стратегий разрешения.

Чтобы принудительно обновить версии косвенных зависимостей, удалите файл блокировки.

Не модифицируйте файл блокировки вручную: Package Manager создает и поддерживает файл блокировки, поэтому он перезаписывает любые изменения, которые вы делаете в файле.

Поместите файл блокировки под контроль исходного кода, чтобы вы могли последовательно воспроизводить один и тот же набор пакетов, чтобы гарантировать, что ваш проект остается последовательным во времени и на различных машинах.

Отключение файла блокировки

По умолчанию Package Manager создает или обновляет файл блокировки, когда он успешно вычисляет график зависимостей. Если вы видите неожиданные результаты, вы можете установить свойство enableLockFile на false в манифесте проекта, чтобы отключить блокировку. Однако, если вы отключите файл блокировки, Package Manager снова клонирует пакеты Git URL, что приводит к снижению производительности и дополнительному использованию сети. Это также может привести к недетерминистическим результатам, если вы отправляете новые фиксации в удаленное хранилище Git между двумя разрешениями.