Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Компоненты решения часто зависят от других компонентов решения. Невозможно удалить компонент решения, который имеет зависимости от другого компонента решения. Зависимости — это записи, автоматически создаваемые платформой решений для предотвращения удаления необходимых компонентов, в то время как один или несколько зависимых компонентов по-прежнему содержат ссылки на них.
Примером зависимости является случай, когда для функционирования формы требуется поле. Если вы попытаетесь выполнить действие, которое приведет к удалению этого поля, форма перестанет работать.
Другой пример — попытка удалить карту сайта для приложения на основе модели. Система указывает на наличие зависимости от приложения. Приложение является зависимым компонентом, а карта сайта — обязательным компонентом. Система не позволит вам удалить карту сайта, пока вы не удалите зависимость.
Примечание.
Удалить означает, что компонент полностью удален Microsoft Dataverse.
В этой статье мы обсудим, как обрабатывать эти зависимости, и стратегии, которые вы можете использовать для удаления зависимостей, которые вам больше не нужны.
Зависимости неуправляемых и управляемых компонентов
Во-первых, важно понимать, что зависимости предотвращают только операции, удаляющие требуемый компонент. Действия, которые могут удалить компонент, различаются в зависимости от того, неуправляемый он или управляемый.
При описании зависимостей полезно знать концепцию уровней решений и компонентов. Если вы не знакомы, рекомендуем вам прочитать эту статью, прежде чем продолжить: Уровни решения
Неуправляемые компоненты
Эти компоненты представлены одним слоем в активном решении. Любая операция Удалить с таким компонентом приводит к его полному удалению.
Управляемые компоненты
Удаление управляемых компонентов зависит от нескольких факторов: количество слоев решения, относительное положение удаляемого слоя и издатели компонентов. Например, при удалении компонента рассмотрите следующие сценарии и ожидаемое поведение при удалении различных слоев.
Примеры сценариев
Следующие примеры сценариев иллюстрируют, что происходит со слоями решений, когда решения удаляются.
Сценарий 1. Удаление одного уровня решения
Удаление решения 1 вызывает удаление компонента, потому что это единственный слой для компонента.
Сценарий 2. Удаление слоев решений от разных издателей
- Удаление решения 2 не вызывает удаления компонентов. Удаляется только этот слой.
- Удаление решения 1 вызывает удаление компонента, потому что это действие выполняется в базовом слое. Фактически, решение 1 не может быть удалено в этом сценарии, потому что решение от другого издателя расширяет компонент.
Сценарий 3. Удаление нескольких слоев решений от разных издателей
- Удаление решения 3 не вызывает удаления компонентов. Удаляется только этот слой.
- Удаление решения 2 не вызывает удаления компонентов. Удаляется только этот слой.
- Удаление Решения 1 не приводит к удалению компонента, поскольку в этом случае существует другое решение от того же издателя (Издатель A = Издатель C). Платформа удаляет слой из решения 1 и заменяет его слоем из решения 3.
Сценарий 4. Удаление слоев решений в неуправляемой настройке
- Удаление активного (неуправляемого) слоя не приводит к удалению компонента. Удаляется только этот слой. Обратите внимание, что вы не можете удалить активное решение, но можете удалить компоненты с помощью функции Удалить активную настройку .
- Удаление решения 1 вызывает удаления компонентов. Действие происходит в базовом слое. В отличие от сценария 2, решение 1 можно удалить. Активное решение не считается расширением, и оба слоя удаляются.
См. страницу о зависимостях
Команда Показать зависимости перечисляет зависимости для выбранного решения или компонента решения. Ее можно вызвать:
- Выбор пункта Показать зависимости на странице решения.
- Выбор пункта Дополнительно>Показать зависимости в решении, когда выбран компонент решения.
- Попытка удалить решение, в результате которой платформа обнаруживает наличие зависимостей.
На странице Зависимости вы можете открыть, удалить или удалить компонент. Больше информации: Просмотр зависимостей для компонента
Диагностика зависимостей
Рассмотрим такой сценарий. В данной среде есть два решения: Решение - Рабочий процесс и Решение - Пользовательская сущность.
Создатель среды решает, что ему больше не требуется Решение - Пользовательская сущность. Создатель попытался удалить его и увидел следующую страницу:
При удалении решения происходит попытка удалить таблицу с именем Custom Entity и три поля —Custom Entity, Name и Number Field — и все четыре компонента имеют зависимости.
Примечание.
Удаление решения может потенциально удалить больше компонентов, но, поскольку они не имеют зависимостей, они не появятся в списке.
Следующим шагом является проверка ссылки Слои решения (крайний правый столбец) для каждой зависимости. Это поможет вам решить, что делать, чтобы устранить зависимость.
На следующем рисунке показаны детали зависимости между таблицей (пользовательская сущность) и процессом (тестовый рабочий процесс).
На основании отображаемых данных можно заметить, что зависимый компонент принадлежит решению с именем SolutionWorkflow. Чтобы удалить эту зависимость, вы можете:
- Обновите определение рабочего процесса в SolutionWorkflow, удалив все ссылки на таблицу или ее подкомпоненты. Затем Обновить или Обновить решение.
- Удалить решение SolutionWorkflow.
- Удалите рабочий процесс из новой версии решения SolutionWorkflow, затем выполните Обновить.
Поскольку любой один зависимый компонент может помешать удалению решения, мы рекомендуем вам проверить все зависимости и внести все необходимые изменения за одну операцию.
На следующем рисунке показаны детали зависимости между таблицей (Custom Entity) и приложением на основе модели (MyApp).
На основании отображаемых данных можно заметить, что зависимый компонент принадлежит решению с именем Active. Это указывает на то, что зависимость была создана путем импорта неуправляемого решения или через неуправляемую настройку, выполненной с помощью современного пользовательского интерфейса или API.
Чтобы удалить эту зависимость, вы можете:
- Изменить определение приложения на основе модели, чтобы удалить любую ссылку на сущность или ее подкомпоненты. Поскольку приложения на основе модели поддерживают публикацию, вы должны опубликовать свои изменения.
- Удалить приложение на основе модели.
Примечание.
Удаление неуправляемого решения не является вариантом удаления этой зависимости, поскольку неуправляемые решения — это просто средство для группировки компонентов.
Действия по удалению управляемой зависимости
Управляемые зависимости — это те зависимости, в которых зависимый компонент связан с управляемым решением. Чтобы разрешить этот вид зависимости, вы должны выполнить действия с решением, в которое был добавлен компонент. Это действие может отличаться в зависимости от того, что вы пытаетесь сделать.
Если вы пытаетесь удалить решение
Выполните следующие действия:
- В целевой среде проверьте ссылку Слои решений , чтобы найти самое верхнее решение в списке зависимого компонента.
- В исходной среде подготовьте новую версию этого решения, в которой решение либо не содержит зависимый компонент, либо содержит обновленную версию зависимого компонента, которая не содержит ссылок на требуемый компонент. Ваша цель — удалить все ссылки на необходимые компоненты в новой версии решения.
- Экспортируйте новую версию решения.
- В целевой среде обновите это решение.
- Повторите попытку удаления.
Если вы пытаетесь обновить решение
В этом случае вы должны подтвердить, что хотите удалить требуемый компонент (помните, что зависимости применяются только к компонентам, которые удаляются).
Если вы не хотите удалять компонент, вы можете исправить новую версию решения, добавив компонент обратно, выполнив следующие действия:
- В целевой среде удалите подготовленное решение (решение, которое заканчивается на _Upgrade).
- В исходной среде добавьте необходимые компоненты обратно в решение.
- Экспортируйте новую версию.
- Повторите попытку обновления.
Если удаление является преднамеренным, вы должны удалить зависимость. Попробуйте выполнить действия, описанные в предыдущем разделе, если вы пытаетесь удалить решение.
Слои и зависимости
Зависимые компоненты могут быть многоуровневыми, поэтому вам может потребоваться изменить более одного решения, чтобы полностью удалить зависимость. Платформа зависимостей вычисляет зависимости только между самыми верхними слоями для обязательных и зависимых компонентов. Это означает, что вам нужно продвигаться сверху вниз в иерархии решений зависимого компонента.
Рассмотрим следующий сценарий:
Вы пытаетесь удалить Решение — пользовательская сущность, и операция заблокирована зависимостями.
Вы начинаете диагностику зависимости, выбирая Слои решения в атрибуте new_numberfield. Вы увидите следующий экран:
Поскольку зависимости создаются только между самыми верхними слоями каждого компонента, первым шагом является устранение зависимости между атрибутом new_numberfield в SolutionCustomEntity и рабочим процессом Тестовый рабочий процесс в SolutionWorkflow3.
Чтобы удалить зависимость, вы решили удалить SolutionWorkflow3. Вы делаете это, но когда вы пытаетесь удалить решение еще раз, вы видите ту же страницу зависимостей:
Однако столбец new_numberfield больше не отображается, даже если он существовал в нескольких слоях.
Действия по удалению неуправляемой зависимости
Чтобы удалить неуправляемые зависимости, необходимо действовать непосредственно на компоненты, а не на решения, к которым они относятся. Например, если вы хотите удалить зависимости между столбцом и формой, необходимо отредактировать ее в конструкторе форм и удалить столбец из формы. Зависимость удаляется после выбора Сохранить и Опубликовать.
Примечание.
- Команда Показать зависимости позволяет выполнять действия по просмотру, удалению зависимости, редактированию или удалению компонента. Больше информации: Просмотр зависимостей для компонента
- Кнопка Просмотреть зависимости появляется при попытке удалить компонент, имеющий зависимости. Хотя этот экран позволяет вам просматривать зависимость, он не позволяет вам предпринимать какие-либо действия.
- При удалении зависимого компонента действие удаляет все зависимости вместе с компонентом.
Чтобы просмотреть зависимости компонента, в области Решения откройте нужное решение, выберите вертикальное многоточие рядом с компонентом, а затем выберите Дополнительно>Показать зависимости.
Страница зависимостей состоит из двух отдельных частей:
- Зависимые компоненты: список компонентов, которые зависят от выбранного столбца. Другими словами, эти компоненты имеют этот столбец в качестве своего обязательного компонента.
- Требуемые компоненты: список компонентов, которые требуются для работы этого столбца. Другими словами, эти компоненты имеют этот столбец в качестве своего зависимого компонента.