Впервые задаю вопрос здесь, и, возможно, не последний. Это касается WiX 3.8
Моя компания начинает заниматься инсталлятором, и одно из требований, которое мне было поручено, — создать многодисковую установку для нашего продукта. Раньше я использовал WiX для простых патчей, но теперь мы хотим создать полную установку. Некоторые из требований включают в себя:
Проблема, с которой я сталкиваюсь, заключается в том, что, когда MSI-файл находится на жестком диске, вне макетов диска или внутри подпапки «Disc1», он не может найти другие CAB-файлы. Требование, которое у меня есть, заключается в том, что мне нужно найти способ, чтобы можно было запрашивать только диск в том и только в том случае, если после поиска в следующей подпапке «Disc2» и поиска следующего устанавливаемого CAB-файла. Поэтому он может не только искать в корне, где находится MSI-файл, но и проверять подпапки на наличие необходимых файлов Cab. (Это почти имитирует InstallShield, но я ДЕЙСТВИТЕЛЬНО не хочу идти по этому пути.)
Второй вопрос, который у меня есть, касается загрузчика. .Exe-файл должен встраивать .msi-файл в соответствии с требованием. Однако даже при отключении кэширования MSI-файла загрузчик, похоже, начинает кэшировать все остальные CAB-файлы (речь идет об установке объемом 20 ГБ). Даже отключив восстановление и откат, загрузчик продолжает пытаться кэшировать cab-файлы в область PackageCache в моей системе.
Я посмотрел в Интернете и прочитал книги по WiX, чтобы помочь найти решение, но, похоже, я, наконец, зашел в тупик. Кто-нибудь может дать мне какие-либо мысли или идеи, чтобы помочь с этой проблемой?
Некоторые вещи, которые я пробовал до сих пор:
— Использование настраиваемого действия (C ++) для выполнения ResolveSource, чтобы попытаться изменить свойство SourceDir для продолжения установки.
— Мысль о создании собственного загрузчика для полного отключения события кэширования пакетов, но я не знаю, с чего начать.
Любой совет, направление или даже образец, чтобы помочь, будет принята с благодарностью.
Спасибо!
Задача ещё не решена.