Installutil.exe (установщик)

Программа для установки является программой командной строки, с помощью которой можно устанавливать и удалять ресурсы сервера путем выполнения компонентов установщика в соответствующих сборках. Эта программа работает совместно с классами в пространстве имен System.Configuration.Install.

Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

Введите в командной строке: .

Синтаксис

installutil [/u[ninstall]] [options] assembly [[options] assembly] ...

Параметры

Аргумент Description
assembly Имя файла сборки, в которой должны выполняться компоненты установщика. Пропустите этот параметр, если указывается строгое имя сборки с помощью параметра /AssemblyName.

Параметры

Оператор сравнения Описание
/h[elp]

–или–

/?
Отображает синтаксис команд и параметров программы.
/helpсборка

–или–

/?сборка
Отображает дополнительные параметры, распознаваемые отдельными установщиками в пределах указанной сборки, вместе с синтаксисом команд и параметров для программы InstallUtil.exe. Этот параметр добавляет текст, возвращенный каждым свойством компонента установщика Installer.HelpText, в текст справки программы InstallUtil.exe. Например, если ServiceProcessInstaller.Account имеет значение User, доступны параметры /username и /password.
/AssemblyName "имя_сборки,

Version = основная.дополнительная.сборка.редакция,

Culture = языковой стандарт,

PublicKeyToken = publicKeyToken"
Задает строгое имя сборки, которое требуется зарегистрировать в глобальном кэше сборок. Имя сборки должно содержать версию, язык и региональные параметры, а также токен открытого ключа сборки. Полное имя должно быть заключено в кавычки.

Например, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" — это полное имя сборки.
/InstallStateDir=[имя_каталога] Задает каталог InstallState-файла, содержащего данные, которые используются для удаления сборки. По умолчанию используется каталог, содержащий сборку.
/LogFile=[имя_файла] Задает имя файла журнала, в который записывается ход установки. По умолчанию, если параметр /LogFile не указан, создается файл журнала с именем имя_сборки.InstallLog. Если параметр имя_файла не указан, файл журнала не создается.
/LogToConsole={true|false} Если значение — true, выходные данные отображаются на консоли. Если значение — false (значение по умолчанию), выходные данные на консоль не выводятся.
/ShowCallStack Если в ходе установки возникает исключение, содержимое стека вызовов заносится в файл журнала.
/u[ninstall] Удаляет указанные сборки. В отличие от других параметров, /u применяется ко всем сборкам независимо от того, где этот параметр указан в командной строке.

Дополнительные параметры установщика

Отдельные установщики, используемые в сборке, кроме перечисленных в разделе Параметры, могут распознавать и другие параметры. Чтобы узнать об этих параметрах, запустите программу InstallUtil.exe с путями к сборкам в командной строке, а также с параметром /? или /help. Чтобы задать эти параметры, необходимо включить их в командную строку вместе с параметрами, распознаваемыми программой InstallUtil.exe.

Примечание.

Текст справки о параметрах, поддерживаемых отдельными компонентами установщика, возвращается свойством Installer.HelpText. Отдельные параметры, которые были введены в командной строке, доступны программно из свойства Installer.Context.

Все параметры командной строки записываются в файл журнала установки. Однако если используется параметр /Password, распознаваемый некоторыми компонентами установщика, сведения о пароле будут заменены восемью звездочками (*) и не будут отображаться в файле журнала.

Внимание

В некоторых случаях передаваемые в установщик параметры могут содержать конфиденциальные или личные сведения, которые по умолчанию записываются в обычный текстовый файл журнала. Для предотвращения этого поведения можно запретить ведение журнала, указав в командной строке /LogFile= (без аргумента имя_файла) после программы Installutil.exe.

Замечания

Приложения .NET Framework состоят из традиционных файлов программ и связанных с ними ресурсов, таких как очереди сообщений, журналы событий и счетчики производительности, которые создаются при развертывании приложения. Компоненты установщика сборки могут использоваться для создания таких ресурсов при установке приложения и для их удаления при удалении приложения. Программа Installutil.exe обнаруживает и выполняет эти компоненты установщика.

В командной строке можно указать сразу несколько сборок. Параметры должны указываться перед именами сборок, к установке которых они относятся. За исключением /u и /AssemblyName, параметры являются накопительными, но переопределяемыми. То есть параметры, указанные для одной сборки, применяются и ко всем последующим сборкам. Исключением являются параметры, с которыми указывается новое значение.

При запуске программы Installutil.exe для сборки без указания параметров она помещает в каталог сборки следующие три файла.

  • InstallUtil.InstallLog — содержит общее описание хода выполнения установки.

  • имя_сборки.InstallLog — содержит сведения, относящиеся к этапу фиксации процесса установки. Дополнительные сведения об этапе фиксации см. в описании метода Commit.

  • имя_сборки.InstallState — содержит данные, используемые для удаления сборки.

Программа Installutil.exe использует отражение для проверки указанных сборок и поиска всех типов Installer, у которых значение атрибута System.ComponentModel.RunInstallerAttribute имеет значение true. Программа, выполняющая метод Installer.Install или Installer.Uninstall для каждого экземпляра типа Installer. Программа Installutil.exe выполняет установку как транзакцию, то есть если какую-либо сборку не удалось установить, отменяется установка всех остальных сборок. Удаление не считается транзакцией.

Программа Installutil.exe не может устанавливать или удалять сборки с отложенной подписью, но может устанавливать и удалять сборки со строгими именами.

Начиная с платформа .NET Framework версии 2.0, 32-разрядная версия среды CLR поставляется только с 32-разрядной версией средства установщика, но 64-разрядная версия среды CLR поставляется как с 32-разрядными, так и 64-разрядными версиями средства установщика. При использовании 64-разрядной среды CLR используйте 32-разрядное средство установщика для установки 32-разрядных сборок и 64-разрядного установщика для установки 64-разрядных и общих сборок CIL. Обе версии программы установщика ведут себя одинаково.

Программу Installutil.exe невозможно использовать для развертывания службы Windows, написанной на языке C++, потому что программа Installutil.exe не может распознать встроенный машинный код, созданный компилятором C++. При попытке развернуть службу Windows, написанную на языке C++, с помощью программы Installutil.exe возникает исключение, например BadImageFormatException. Для работы с этим сценарием перенесите код службы в модуль C++ и создайте объект установщика на языке C# или Visual Basic.

Примеры

Следующая команда выводит описание синтаксиса и параметров команды для программы InstallUtil.exe.

installutil /?

Следующая команда выводит описание синтаксиса и параметров команды для программы InstallUtil.exe. Она также отображает для myAssembly.exe описание и список параметров, поддерживаемых компонентами установщика, если свойству Installer.HelpText установщика было задано значение текста справки.

installutil /? myAssembly.exe

Следующая команда выполняет компоненты установщика в сборке myAssembly.exe.

installutil myAssembly.exe

Следующая команда выполняет компоненты установщика в сборке с помощью ключа /AssemblyName и полного имени.

installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

Следующая команда выполняет компоненты установщика в сборке, заданной по имени файла, и в сборке, заданной по строгому имени. Обратите внимание, что все сборки, указанные по имени файла, должны предшествовать сборкам, указанным по строгому имени в командной строке, потому что параметр /AssemblyName не может быть переопределен.

installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

Следующая команда выполняет компоненты программы удаления в сборке myAssembly.exe.

installutil /u myAssembly.exe

Следующая команда выполняет компоненты программы удаления в сборках myAssembly1.exe и myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

Поскольку позиция параметра /u в командной строке не имеет значения, результат аналогичен выполнению следующей команды.

installutil /u myAssembly1.exe myAssembly2.exe

Следующая команда выполняет компоненты установщика в сборке myAssembly.exe и указывает, что сведения о ходе установки должны записываться в файл myLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe

Следующая команда запускает установщики в сборке myAssembly.exe, указывает, что сведения о ходе выполнения должны записываться в файл myLog.InstallLog, и использует настраиваемый параметр установщика /reg для указания, что обновления должны вноситься в системный реестр.

installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe

Следующая команда запускает установщики в сборке myAssembly.exe, использует пользовательский параметр установщика /email для указания адреса электронной почты пользователя и не ведет запись в файл журнала.

installutil /LogFile= /email=admin@mycompany.com myAssembly.exe

Следующая команда записывает сведения о ходе установки для сборки myAssembly.exe в журнал myLog.InstallLog, а сведения для сборки myTestAssembly.exe — в журнал myTestLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe

См. также