volatile
необходим при разработке встроенных систем или драйверов устройств, где необходимо считать или записать устройство с отображенной памятью. Содержание конкретного регистра устройства могло измениться в любое время, таким образом, Вам нужно volatile
ключевое слово, чтобы гарантировать, что такие доступы не оптимизированы далеко компилятором.
Создайте пакет InstallShield InstallScript. Используйте пакет InstallScript и начинайте .MSI один за другим с помощью «-qn». Я делаю это, и мне это удается. Я считаю, что он соответствует всем перечисленным вами требованиям.
Пока Wix's Burn не будет готов, у нас действительно не так много выбора, когда дело доходит до загрузчиков.
Если вы используете InstallShield в качестве дизайнера msi, вы можете попробовать создание проекта InstallScript, содержащего все различные пакеты msi. После этого вы можете без вывода сообщений установить только нужные пакеты. Однако InstallShield довольно дорогой, поэтому, если у вас его еще нет, вам, вероятно, придется использовать собственный загрузчик.
dotNetInstaller выглядит многообещающим. Я экспериментировал с ним, чтобы установить java в качестве предварительного условия. Он поставляется с редактором графического интерфейса, поэтому вам не нужно разбирать XML для создания проекта. Файл конфигурации находится в формате xml, и InstallerLinker можно запустить из командной строки. Его можно было бы интегрировать с сервером сборки, хотя было бы неплохо выполнить некоторые задачи msbuild.
главная страница проекта:
http://dotnetinstaller.codeplex.com/
учебное пособие:
http://www.codeproject.com/KB/install/dotNetInstaller.aspx