Я 7 лет писал установщики InstallScript, прежде чем взялся за MSI. Хотя существует огромная разница между процедурными обязательными установками на основе сценариев и декларативными установками на основе данных, они обе выполняют одну и ту же основную вещь: развертывание программного обеспечения.
Я стал экспертом MSI, но изучал все, что мог в домене, писал LOTS установок и вел блог в течение 7 лет и отвечал на более чем 4400 сообщений на форумах сообщества InstallShield. Единственный способ попасть в мою книгу - побывать там и сделать это.
Итак, первым шагом в вашем поиске должно быть очень глубокое понимание платформы Windows и связанных с ней технологий. Они развиваются годами, но вы должны получить приличное понимание:
Основы
- Реестр
- Файловая система
- NTFS
- ACL,
- Типы DLL (Win32, COM, сборка .NET)
- Win32 API
- .NET библиотеки базовых классов
- Диспетчер управления службами драйверов ODBC
- SQL IIS Active Directory (GPO, LDAP и т. Д.)
- Глобальный кэш сборок
- WinSxS Cache
- DLL Hell
- Хорошее и плохое поведение установщика
Второй шаг
Инструменты
Теперь давайте начнем писать установки. Как сказал Лесли (Пасха, я полагаю) в другом ответе, выберите инструмент и узнайте, как его использовать для выполнения вышеуказанных задач. Но не останавливайтесь на достигнутом, как только вы сможете перейти к следующему шагу.
MSI
Начните углубляться в то, как ваш инструмент работает за сценой, как только сможете. Так же, как вы можете написать C # в .NET и посмотреть на IL с ILDASM, научитесь использовать ORCA и посмотрите, что происходит. Прочитайте MSI SDK. Да, это грубо и загадочно, но я провел 3 месяца, переключаясь между DC и TX, и я тратил по крайней мере 16 часов в неделю, путешествуя от интернет-соединений, но ничего кроме SDK для чтения. Прочитайте это, знайте это, живите этим ... загадочные разделы помощи в конечном счете начнут щелкать и становиться второй натурой.
И, наконец, прочитайте мой блог: DeploymentEngineering.com и все остальные блоги, которые вы можете найти.