Ответ 1
Ad-Hoc: Как избежать типичных ошибок проектирования в моем решении по развертыванию WiX/MSI? - очень грязное и не идеальное специальное резюме общих проблем, обнаруженных в файлах MSI. Не хорошо. Лучше чем ничего? Материал, которого нет в книгах (слишком грязный).
Важная тема: Как избежать случайного распространения конфиденциальной информации в моем MSI?
WiX & MSI:
MSI - это принятый стандарт корпоративных приложений. Он имеет некоторые основные корпоративные преимущества (
and the short, concise version
) по сравнению с традиционным развертыванием методы. WiX - это новый способ создания файлов MSI с открытым исходным кодом.
- Загрузка набора инструментов Wix (
1)
Основная настройка WiX,2)
Votive - настройка интеграции с Visual Studio- Документация WiX
- После установки WiX найдите
WiX.chm
иmsi.chm
файлы справки в папке установки "%ProgramFiles(x86)%\WiX Toolset v3.11\doc
" для быстрого доступа к документации.- В сети:
WiX Reference Manual v3
,Official WiX Tutorial
.Github
,Bug Tracker
,Mailing List
,FireGiant WiX KDB
(FireGiant - коммерческий филиал WiX).- Чтобы обдумать Wix, вы можете прочитать краткое неофициальное описание истории.
- MSBuild - с использованием Visual Studio, Votive и MSBuild
- Сбор (1): WiX имеет собственный инструмент для создания разметки WiX на основе входной папки. Инструмент называется heat.exe. Коммерческое отделение WiX FireGiant имеет инструмент под названием HeatWave с дополнительными функциями.
Другие инструменты:
- Затем вы можете проверить другие способы доставки установщика, кроме Wix, прочитав:
- Основные инструменты: Расширенный установщик, - InstallShield, - PACE Suite
Hello World & Здравствуйте, WiX:
- Наконец, посмотрите полный пример того, как выглядит исходный файл Wix и его компоненты в Codeproject. Это "Привет Мир " Wix.
- "Здравствуйте, WiX - пошаговая инструкция в Visual Studio".
- Для этого требуются WiX и Votive (расширение Visual Studio для WiX Toolset - интеграция с WiX Visual Studio, чтобы вы могли получить Intellisense). См. страницу загрузки.
- Встроенные комментарии в нижней разметке - это, вероятно, все, что вам нужно для начала работы.
- Небольшая выборка переменных препроцессора WiX/определяет.
Пример кода:
Быстрый запуск WiX. Вот некоторые из лучших примеров кодовых ссылок, которые я нашел:
- Хельге Кляйн реальный пример WiX - не забудьте проверить это (Wayback - архивная версия).
- Rainer Stropek Образцы WiX на Github - может быть очень полезным.
- От MSI до WiX от Алексея Шевчука - старение контента, но отлично.
- Крис Пейнтер Учебники по IsWiX - отличные образцы WiX.
And finally:
- Фил УилсонGithub хранилище для образцов MSI: https://github.com/Apress/def-guide-to-win-installer. Лучший контент, но старение. Общие образцы MSI, а не WiX как таковые.
- Мой экспериментальный сайт: installdude.com.
- Как к Create-A-Windows-Сервис-MSI-установщиков с помощью WiX-.
Отладка: всегда проверяйте все журналы событий, журналы приложений и журналы MSI - если они доступны. Просто чтобы упомянуть это. И используйте любой доступный инструмент отладки и уточните точное сообщение об ошибке, прежде чем делать что-либо еще.
И проверьте наличие каких-либо явно отсутствующих сред выполнения. Например: .Net
, .Net Core
, Java
, Silverlight
, Direct X
, VC++ Runtime
, MS-XML
(наследие), etc...
.
Custom Action Debugging:
- Распространенные причины сбоев среды выполнения пользовательских действий
- Отладка пользовательских действий
- Для собственного кода /C++ просто подключите отладчик к
msiexec.exe
- Видеоинструкция по настраиваемым действиям по отладке расширенных функций в С#
MSI logging:
- Обзор и резюме (как вести журнал, интерпретировать файл журнала и т.д.)
- Сайт установки: журнал MSI с практическими рекомендациями
- Дополнительная информация о регистрации MSI
Event Viewer:
- Удерживая нажатой кнопку Windows Key, коснитесь R, введите
eventvwr.msc
и нажмите Enter.- Перейти к
Windows Logs => Applications
. ИщитеMsiInstaller events
.- Проверьте и другие журналы (
Security
,System
,Configuration
).General Debugging:
- Проблема запуска приложения: отладка идей (торпеды полностью распространены)
ProcMon.exe: инструмент торговли. Один размер подходит всем орудие труда. Колени пчелы, самый верхний, квантовый скачок, кошачий пижамы. Это может быть проблемой, чтобы использовать его эффективно, но это лучший универсальный бесплатный инструмент отладки.
Debugging Tools:
- Инструменты для устранения проблем с зависимостями -
ProcMon.exe
,VS
,Dependency Walker
,etc...
- Основные инструменты отладки сервиса:
Event Viewer
,Task Manager
,Services.msc
Process Explorer
,NET command
,SC.exe
- Часто задаваемые вопросы по службам Windows (FAQ)
Код ошибки. Поиск кодов ошибок и сообщений об исключениях.
- "База магических чисел" - онлайн-поиск.
- Проверка кодов ошибок - несколько инструментов и подходов.
A Deployment Mnemonic: A general mnemonic to think about deployment problems:
What is locking
(in use),what is blocking
(permissions),what is corrupt
(disk, malware, configs, encryption)what are unexpected system states
(disk space, time & date settings, language, licensing, windows patch state, path too long, PendingFileRenames, etc...),what are incompatible products
(things that can't co-exist),what is unreachable or misconfigured
(what points to erroneous locations и resources: network server names, disk paths, URLs, databases, services, UAT environments, PROD environments, etc...) и last but not least:what is missing
(runtime, resource image, settings file, etc...)?
Обновление:
Некоторые другие ссылки WiX:
- Упростите разметку WiX.
- Регистрация COM EXE файлов с помощью WiX.
- Не удается удалить, происходит сбой.
- Библиотеки динамических ссылок.
- Среды отладки Microsoft.
- Как создать необходимый пакет для установщика Windows?
- Как встроить CustomAction.CA.dll в MSI?
- Установленная программа удаляется автоматически при каждом перезапуске сервера с Windows Server 2012 R2
Несколько хороших начальных ссылок для изучения Wix:
- Предложения по быстрому запуску My Wix
- Хорошие ресурсы для изучения того, как создавать установщики MSI из WiX
- Как реализовать обновление установщика WiX? (серьезное обновление)
- Каковы ограничения WiX и WiX Toolset?
Извлеките файлы из Setup.exe
WiX Bundle или из самого файла MSI:
- Извлечение MSI из EXE - включая извлечение файлов, встроенных в исполняемый файл пакета WiX Burn.
- Как сравнить содержимое двух (или более) файлов MSI? - В том числе, как извлечь файлы из MSI с помощью инструмента WiX
dark.exe
Как я уже писал в моем предложении "Быстрый старт Wix" выше: Wix практический. Просто сосредоточьтесь на простых, но полных реальных примерах, таких как пример из Codeproject - чтение одной документации, вероятно, будет просто запутанным.
Сосредоточьтесь на том, чтобы разбить ваше приложение на компоненты и настроить серьезное обновление. Как правило, используйте один файл для каждого компонента и прочитайте этот ответ, чтобы лучше понять, как создать компонент: Изменить GUID компонента в wix?
Основное обновление - это наиболее часто используемый механизм обновления для развернутого программного обеспечения (другой распространенный тип обновления - незначительное обновление). Очевидно, очень важно, чтобы вы могли обновить то, что уже развернули. Подготовьте сценарии обновления до развертывания первой версии программного обеспечения, чтобы вы были уверены в своем решении для развертывания.
После того, как вы настроили свои компоненты и ваше решение по обновлению работает, остальные части встают на свои места, когда вы выполняете свои требования по развертыванию приложений и проверяете образцы на учебном сайте Wix: https://www.firegiant.com/wix/tutorial/.
Для тех, кто пишет код Wix напрямую (без редактора графического интерфейса), я предлагаю вам проверить этот ответ, чтобы кратко сохранить исходные файлы: Синтаксис для направляющих в WIX?
Далее читайте: