Я просто хочу отметить, что теперь все стало еще проще. Существует полная оболочка .NET для объектной модели установщика Windows, так что вы можете избежать любых проблем взаимодействия COM * .
Оболочка называется " Deployment Tools Foundation " (DTF), и вот основное описание: " Deployment Tools Foundation - это богатый набор библиотек классов .NET и связанных ресурсов, которые вместе объединяют технологии платформы развертывания Windows в мире .NET. Они призваны значительно упростить задачи разработки, связанные с развертыванием, и в то же время раскрыть всю функциональность базовой технологии".
Вот урезанный, практический образец :
using (var db = new Database(FullPath, DatabaseOpenMode.ReadOnly))
{
PackageCode = db.SummaryInfo.RevisionNumber;
AppVendor = db.SummaryInfo.Author;
AppName = db.SummaryInfo.Title;
ProductName = db.SummaryInfo.Subject;
ProductCode = (string)db.ExecuteScalar("SELECT `Value` FROM "+
"`Property` WHERE `Property` = 'ProductCode'");
AppVersion = (string)db.ExecuteScalar("SELECT `Value` FROM "+
"`Property` WHERE `Property` = 'ProductVersion'");
UpgradeCode = (string)db.ExecuteScalar("SELECT `Value` FROM "+
" `Property` WHERE `Property` = 'UpgradeCode'");
}
Первичные файлы DTF (последние два наиболее часто используемые):
- Microsoft.Deployment.Compression.dll - Каркас для упаковки и распаковки архива.
- Microsoft.Deployment.Compression.Cab.dll - Осуществляет упаковку и распаковку архивов кабинета.
- Microsoft.Deployment.Resources.dll - Классы для чтения и записи данных ресурсов в исполняемые файлы.
- Microsoft.Deployment.WindowsInstaller.dll - Полная библиотека классов на основе .NET для API установщика Windows.
- Microsoft.Deployment.WindowsInstaller.Package.dll - Расширенные классы для работы с установщиком Windows и пакетами исправлений.
Просто создайте проект на C #, ссылайтесь на эти файлы и кодируйте свое собственное приложение для развертывания с любым управлением, которое вы пожелаете и в чем нуждаетесь. В настоящее время я не настроен на использование инструментов для DTF, но см. этот пример для общего представления о том, как будет работать программа на C #.
- DTF включен в WIX. Загрузите WiX здесь .
- Файлы DTF находятся в папке SDK в основной папке установки WiX (по умолчанию:% ProgramFiles (x86)% \ WiX Toolset v3.10 \ SDK). Номер версии, вероятно, будет отличаться к тому времени, когда вы увидите это. Просто найдите папку WiX в папке% ProgramFiles (x86)%.
- Найдите файлы справки DTF в папке "doc". DTF.chm и DTFAPI.chm . Абсолютно отличная документация для объектной модели и ее использования.
- См. это сообщение на serverfault.com , чтобы узнать подробности DTF
- Некоторые предложения по работе с WiX: MSI против пакетов nuget: что лучше для непрерывной доставки?