Это известная «проблема» при использовании MSI, и обычно она вызвана неверной стратегией развертывания .Отсутствие подсчета ссылок на самом деле является лишь признаком подверженного ошибкам подхода развертывания.
Практически ни в коем случае ваш установщик не должен вмешиваться в файлы, которые существуют или могут существовать до запуска вашей установки,Это включает в себя файлы, которые вы установили самостоятельно, ссылки на которые подсчитаны другими вашими установщиками!Подумайте, сплоченность и связь, только один установщик должен иметь дело с каждым файлом.
Это общее правило, как правило, вызывает ответ в виде "наш случай особенный".Поверь мне, это не так.Приложение должно использовать свою собственную папку установки в разделе «Program Files», свою собственную папку в пользовательских настройках и свою собственную папку в общих настройках.Он не должен никогда заменять или обновлять общие файлы, такие как пользовательские словари, списки исключений и т. П.
Часто такой подход заключается в том, чтобы упростить "разработку для разработчиков", когда файлам конфигурации требуются значения по умолчанию дляприложение для работы.Совершенно неприемлемо.Само приложение может обращаться к общим файлам, даже обновлять их, если у него есть доступ, но оно может , а не заменить весь файл «настройками по умолчанию» или удалить весь файл при удалении. Приложение несет ответственность за создание работающей среды в отсутствие базовых файлов конфигурации. Затем файлы должны быть сгенерированы из внутренних значений по умолчанию приложений или скопированы из файлов по умолчанию только для чтения, размещенных в другом месте.
Если вы обмениваетесь файлами конфигурации между различными установщиками, я бы развернул их с помощью модуля слияния или просто установил компонент (ы), которые содержат файл (ы), на " shared " и " постоянный"и" никогда не заменять, если он уже существует".Это должно быть «простым решением» описанного вами симптома, даже если вы не следуете рекомендациям по развертыванию, которые я рекомендую выше.