Я настоятельно рекомендую посмотреть на Wix #. См. http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX. Если вы делаете свое кодирование на C#, Wix #, это, вероятно, будет самым простым и удобным набором навыков для добавления, и оно будет бесплатным и будет напрямую интегрироваться в среду Visual Studio, которую вы используете.
Более подробная информация на домашней странице CodePlex для Wix #: http://wixsharp.codeplex.com/
Для C разработчиков # которым необходимо создать установщик Windows MSI для развертывания их приложений, Wix # является, пожалуй, лучшей заменой для «упаковки и развертывания» проект введите Microsoft, удаленную из Visual Studio, начиная с VS2012. Wix - это интерфейс C# для набора инструментов WiX (Windows Installer Xml). Использование Wix # позволяет создать полный Windows Installer MSI на языке C#.
Wix # полезен для широкого спектра сценариев установки/развертывания и достаточно хорошо подходит для сценариев непрерывной интеграции. Существуют примеры Wix # для развертывания настольных приложений Windows, для установки служб Windows и установки веб-сайтов ASP.NET и многих других типов установок.
Вопрос о необходимости установки приложений в Windows 7. Wix # поддерживает эту среду и отвечает типичным требованиям установщика, а код установщика Wix # для простых проектов действительно прост.Для приложений, которые являются более сложными и требуют расширенных функций, Wix # может при необходимости задействовать весь комплект WiX Toolset. Например, при установке приложения .NET типичным требованием было бы установить файлы exe и dll приложения, а также настроить некоторые файлы конфигурации .NET и/или записи реестра в целевой системе.
Ниже приведен пример кода C# для простого установщика Wix #, который устанавливает приложение в целевой системе и изменяет некоторые файлы конфигурации. В этом примере предполагается, что вы написали утилиту с именем «TailorMyConfig.exe», например, простую программу на C#, которая использует процедуры ConfigurationManager.AppSettings, и вы развертываете этот exe вместе с вашим приложением.
Обратите внимание, что существуют «лучшие» способы изменения конфигурационного файла с использованием функций WiX XML. Для простоты приведенный выше пример предполагал специальную утилиту C# exe для изменения файлов конфигурации. Я бы предложил использовать возможности WiX XML для этого. Вы можете включать практически любые возможности WiX XML непосредственно в настройку Wix # с использованием технологии Wix # «XML injection».
Помните, что Wix # является просто интерфейсом C#, который испускает синтаксис WiX XML. После того, как Wix # выпустил XML-файл WiX (файл wxs), этот файл wxs можно легко обработать, чтобы вставить дополнительные функции WiX XML. Затем полученный файл wxs скомпилируется с помощью набора инструментов WiX в MSI.
Для примера использования XML Injection для включения WIX XML функции в Wix # (C#) установки, смотрите здесь In Wix#, how to avoid creating a physical folder on the target system, when deploying only registry entries? В этом вопросе см мой ответ, который использует технику подключения делегата на «WixSourceGenerated» мероприятие.
Затем вы можете использовать этот подход внедрения XML для вставки некоторого WiX XML в ваш установщик, который выполнит редактирование файла конфигурации. Пример типичного WiX XML для изменения конфигурационных файлов находится здесь: How to modify .NET config files during installation?
Другим типичным требованием установщика является добавление или изменение записей реестра Windows в целевой системе. Wix # обеспечивает прямую поддержку для этого, используя класс «RegValue». Преимущество в том, что при использовании Wix # вы также получаете полную «возможность удаления» бесплатно, включая удаление/восстановление записей в реестре до состояния предварительной установки. Это естественный результат создания Wix # поверх технологии WiX Toolset и Windows Installer. Пример установки установщика Wix # только для реестров: In Wix#, how to avoid creating a physical folder on the target system, when deploying only registry entries?
Подход Wix # был очень полезен в моей среде, и он позволяет использовать привычный набор навыков C# без необходимости прыгать вперёд в полную сложность Технология установки WiX XML.