Устройство Burn зарегистрирует пакет в «Установка и удаление программ», как только будет установлена какая-либо часть пакета. Пакет необходимых компонентов .NET является частью пакета, поэтому, когда MBAPrereq BootstrapperApplication устанавливает .NET, пакет зарегистрирован в разделе «Установка и удаление программ». Невозможно изменить это поведение механизма записи в вашем Bundle или BA. Потенциальный запрос функции может состоять в том, чтобы Burn мог регистрировать пакет только после установки непостоянного пакета. Запросы функций должны быть поданы в http://wixtoolset.org/issues .
Сегодня вы можете попытаться решить эту проблему, поставив логику в свою BA, где она автоматически удаляет себя перед вызовом Engine :: Exit, если он обнаружит этот сценарий.
Да. Гарантирует, чтобы у Вас не было висячей строки (запись без родителя), и в зависимости от использования при определении каскадного удаления когда родитель будет удален, все его дочерние элементы будут также удалены.
Недостаток был бы небольшим хитом производительности точно так же, как любой другой внешний ключ.
Да, необходимо сделать его внешним ключом.
преимущества будут лучшей моделью данных с меньшим дублированием.
Да Вы должны.
Преимущества (что касается любого внешнего ключа):
, я не могу думать ни о каких реальных недостатках.
Да, Вы должны. Если у Вас есть атрибут в отношении базы данных, которая служит первичным ключом другого отношения в той же базе данных, необходимо сделать его FK.
Вы будете наслаждаться преимущества, связанные с внешними ключами :
недостатки: