Розгортання установника Windows дозволяє створити інсталяційний пакет, розповсюджуваний кінцевим користувачам; для установки програми користувач запускає файл установки і виконує кроки майстра. Цього можна досягти, додавши в рішення проект установки. При побудові проекту створюється файл установки, який розповсюджується кінцевим користувачам; користувач запускає цей файл установки і виконує кроки майстра для установки програми.
Установник Microsoft Windows - це керована даними служба установки і настройки, що поставляється з операційною системою Windows. Інсталятор Windows підтримує базу даних з відомостями про всі встановлені застосування, включаючи файли, розділи реєстру та компоненти. При деінсталяції програми перед видаленням файлу, розділу реєстру або компонента здійснюється перевірка бази даних на предмет їх використання іншими додатками. Завдяки цьому при видаленні додатка запобігає можливість порушення роботи іншої програми.
Експрес-випуски не включають технологію інсталятора Windows. Відомості про технологію розгортання, використовуваної в експрес-випусках, див. Розділ Розгортання і безпеку технології ClickOnce.
За допомогою засобів розгортання Visual Studio з функціями, наданими монтажником Windows, можна розгортати і підтримувати додатки.
Для розгортання програми і необхідних йому компонентів слід використовувати інсталятор. Як правило, додатки мають залежності в платформі .NET Framework, в SQL Server Express або навіть настроюється EXE-файл або бібліотеку DLL. Однак неясно, чи є на комп'ютерах користувачів певна версія платформи .NET Framework або інші залежності, на які покладається додаток. З цієї причини копіювати додаток на комп'ютер користувача не рекомендується.
Розташування для установки
Користувачі можуть встановити додаток з Інтернету, з компакт-диска, з мережевої загальної папки або іншими способами. Місце, звідки виконується установка, впливає на використовуваний шаблон проекту. Наприклад, якщо потрібно, щоб користувачі виконували установку з Інтернету, можна використовувати шаблон проекту веб-установки. Для установки з компакт-диска або по мережі використовуйте шаблон проекту установки. Додаткові відомості про шаблони проекту розгортання см. В розділі Проекти установки і розгортання.
Файли і папки
Віртуальні папки представляють системні папки Windows. Наприклад, папка Desktop Folder є еквівалентом системної папки "Робочий стіл". Windows відстежує розташування системних папок, тому незалежно від того, де знаходиться папка і як вона називається, файли, поміщені в Папку робочого столу. завжди виявляються в системній папці робочого столу. Додаткові відомості див. У розділі Особливі і призначені для користувача папки.
Крім того, за допомогою властивості Condition на будь-який файл або папку можуть бути накладені умови. Це дозволяє налаштовувати установку файлів в залежності від умов, що існують на кінцевому комп'ютері під час установки. Наприклад, в залежності від версії операційної системи можуть бути встановлені різні файли. Додаткові відомості див. У розділі Властивість Condition.
зіставлення файлів
При розгортанні додатки часто потрібно зіставити з ним той чи інший тип файлу. Наприклад, якщо додаток створює і використовує файли з розширенням MYFILE, його можна пов'язати з даним типом файлів, щоб при подвійному натисканні MYFILE-файл відкривався в додатку.
Часто при розгортанні програми потрібен доступ до реєстру, установка значень реєстру або створення його розділів. Інструменти розгортання Visual Studio забезпечують такі можливості.
Крім того, для будь-якого розділу або значення реєстру можна визначити умови за допомогою властивості Condition. Це дозволяє налаштовувати реєстр в залежності від умов, що існують під час установки на кінцевому комп'ютері. Наприклад, в залежності від версії операційної системи, встановленої на кінцевому комп'ютері, можуть бути введені різні параметри реєстру.
Підписування за допомогою Authenticode
Інструменти розгортання Visual Studio надають можливість підписати установник, модуль злиття або CAB-файл за допомогою технології Microsoft Authenticode. Щоб підписати додаток або компоненти, необхідно придбати цифровий сертифікат.
Для використання технології підписання Authenticode необхідно включити підписані маніфести ClickOnce в проекті розгортання. Додаткові відомості див. У розділі Сторінка "Підписування" в конструкторі проектів.
Глобальний кеш зборок
Глобальний кеш зборок - це кеш коду, що надається платформою .NET Framework і використовуваний для зберігання збірок, які повинні спільно використовувати кілька різних програм. Щоб збірку можна було встановити в глобальний кеш збірок, вона повинна мати суворе ім'я. При цьому додаток або компонент отримують унікальне позначення, яке інші програми можуть використовувати для його ідентифікації і явного звернення до нього. Додаткові відомості див. У розділі Практичний посібник. Підписування збірки (Visual Studio).
Для успішного розгортання програми необхідно також розгорнути всі компоненти, на які посилається додаток. Наприклад, більшість додатків, створених за допомогою Visual Studio, залежать від платформи .NET Framework. Перед встановленням програми на кінцевому комп'ютері має бути присутня необхідна версія середовища CLR. Засоби розгортання в Visual Studio дозволяють встановити платформу .NET Framework і інші компоненти в процесі установки. Процес установки необхідних компонентів також називається початкова завантаження.
Адміністративний пакет установки - це елемент установника Microsoft Windows, який дозволяє встановлювати вихідний образ додатки на мережевий загальний ресурс. Користувачі робочої групи, які мають доступ до цього мережного ресурсу, зможуть потім встановити додаток з вихідного образу.
Якщо Ви встановлюєте програму за допомогою адміністративного пакета установки файли початкового завантаження додатка (тобто ті файли, які при необхідності встановлюють інсталятор Windows), чи не копіюються на сервер, навіть якщо для властивості Початковий завантажувач задано значення Початковий завантажувач установника Windows. Якщо для установки потрібні файли початкового завантаження додатка, необхідно вручну скопіювати на сервер файли Instmsia.msi, Instmsiw.msi, Setup.exe і Setup.ini. Ці файли можна знайти в тому ж каталозі, в якому знаходиться файл додатка з розширенням .msi.
Додаткові відомості див. У документації пакета SDK інсталятора Windows в розділі Адміністративна установка (інсталятор Windows).
Windows і підвищення прав
Технологія, реалізована в інсталятор Windows, підтримує установку програмного забезпечення в операційних системах Windows Vista і Windows 7. Якщо для установки компонента потрібно підвищення прав, в ході установки програми користувач повинен отримувати запити для кожного подібного компонента навіть у тому випадку, якщо функція контролю облікових записів (UAC) включена.
Підвищення прав додатки
Як правило, Setup.exe (також званий загрузчиком) працює не з підвищеними правами, а з правами поточного користувача. Таким чином установка не запитує підвищення прав при запуску установки кінцевого додатки. Однак слід мати на увазі, що файл MSI зазвичай запитує підвищення прав у користувача, тоді як Setup.exe цього не робить.
У вбудованому UAC-маніфесті завантажувача вузол requestedExecutionLevel вказує на те, що установка виконується від імені поточного користувача (asInvoker):
Однак при необхідності права програми установки програми можна підвищити. Наприклад, зміна параметрів IIS в проекті веб-додатки вимагає повноважень адміністратора, як і установка збірки в глобальний кеш збірок. Запит на підвищення прав виводиться після установки необхідних компонентів, але перед установкою самого додатка.
Щоб підвищити права програми установки, відкрийте файл проекту (VDPROJ). У розділі файлу проекту MsiBootstrapper надайте властивості RequiresElevation значення True. Це властивість не є в інтегрованому середовищі розробки (IDE) Visual Studio. Таким чином, необхідно використовувати файл проекту. Додаткові відомості див. У розділі Властивість RequiresElevation.
Підвищення прав за участю адміністратора
Інсталятор Windows підтримує підвищення прав за участю адміністратора в ОС Windows Vista і Windows 7. У цьому випадку у користувача запитуються облікові дані адміністратора, і адміністратор вводить пароль для користувача. Для підтримки цього сценарію, завантажувач встановлює властивість AdminUser рівним True. якщо комп'ютер працює під управлінням Windows Vista або більш пізньої версії Windows.
Якщо на комп'ютері використовується Windows Vista з відключеним UAC і поточний користувач не є адміністратором, властивості AdminUser як і раніше буде присвоєно значення True. Таким чином, EXE-установники (наприклад SQLExpress32.exe) повинні бути написані з урахуванням необхідності виявлення необхідного рівня дозволів і для генерації певного коду завершення в разі недостатності дозволів. При розробці в Setup.exe необхідно включити можливість обробки цього коду завершення і виведення відповідного повідомлення про необхідність прав адміністратора.
Підвищення прав необхідних компонентів
При необхідності Windows Vista і Windows 7 підвищують права програми для установки необхідних компонентів. Сам завантажувач не виконує підвищення прав. Якщо в Windows Vista або Windows 7 включена функція контролю облікових записів, вона видає запит для кожного необхідного компонента, установка якого повинна виконуватися з підвищеними правами в разі, якщо цей компонент ще не встановлено. Якщо при підвищенні прав пакета відбувається помилка, завантажувач припиняє роботу і відправляє відповідне повідомлення.
Підвищення прав для настроюваного дії
Відмінності між версіями Visual Studio
Недоліком цієї зміни є те, що запит видається для кожного необхідного компонента, який повинен бути встановлений, а також для самого додатка. Однак якщо всі необхідні компоненти вже встановлені на комп'ютері, то установка може взагалі не видавати жодного запиту. Крім того, не слід проводити зовнішні перевірки, що вимагають підвищених прав. Зовнішні перевірки будуть виконуватися, але користувач отримає кілька запитів на підвищення прав на додаток до тих, які вже видав установник.