Я немного боюсь вступить в это, но ограничения существуют только в том случае, если вы не следовали передовым практикам вверх по течению.
Возьмите «ошибка удаления файлов» и «ошибку». Я не видел это некоторое время, но, если я вспоминаю, это обычно вызывается следующим сценарием:
сборка A:
файл 1: 1.0.0.0
сборка B:
файл 1: 1.0.0.0
Теперь вы идете сделать серьезное обновление, где у вас запланировано RemoveExistingProducts после CostFinalize. FindRelated Products обнаруживает, что ProductCode должен быть удален, Costing говорит, о, я вижу, что у меня 1.0.0.0, но 1.0.0.0 уже установлен, поэтому мне нечего здесь делать, а затем приходит RemoveExistingProducts и удаляет старую версию, тем самым удаляя файл 1.
Я всегда работал над этим, планируя RemoveEXistingProducts ранее, чем это было предложено Microsoft. У меня это работает годами.
Что касается ада зависимостей, я управляю линейкой программных продуктов, которая состоит из сотен функций, выраженных сотнями модулей слияния, и тысячами файлов (более 15 000), используемых десятками установщиков для десятков различных функций, интеграции, основного обслуживания и обслуживания. и ветки обслуживания_integ.
Как мне это сделать? Один фрагмент за раз и много автоматизации, SCM и виртуальных машин, чтобы убедиться, что все действительно работает так, как задумано.
Находясь так близко к доставке вашего продукта, единственный «ответ», который я могу вам предложить, - дать вам знать, что такие люди, как я, всегда доступны для найма. Вы будете удивлены, насколько быстро некоторые из нас смогут перевернуть проекты и получить программное обеспечение.