Как создать сборку windows


Руководство по созданию собственной установочной сборки Windows 8 / Хабр

Введение

Сегодня я хочу рассказать о том, как создать собственный установочный образ Windows 8, со всеми установленными обновлениями, программами и пользовательскими настройками.

Использование такой сборки автоматизирует работу системного администратора по установке и настройки операционной системы. Особо актуально для тех случаев, когда необходимо установить однотипный набор программ на большое количество компьютеров. Так же полезно руководство будет и тем, кто просто хочет создать собственный установочный образ Windows 8 с набором используемых им программ и драйверов.

В данном руководстве затрагиваются вопросы подготовки такой сборки, создание загрузочной флешки и записи полученной сборки на флешку. Так же, полученный образ в дальнейшем, используя службы развертывания в сети (WDS), можно установить на любое количество компьютеров в корпоративной сети, но это тема уже следующего руководства.

Текст рассчитан на начинающих пользователей, поэтому объясняются и иллюстрируются порой простейшие вещи.

Ресурсы

Нам понадобятся по ходу работы следующие артефакты
Образ установочного диска Windows 8 в формате ISO

Я сделал свой выбор в пользу Windows 8 Enterprise x64.

Объясню почему. Выбор редакции Enterprise обусловлен максимальной функциональностью, которую обеспечивает эта редакция.

Но в принципе, для домашнего использования возможно использовать и редакцию Professional, тут по желанию.

Аппаратная платформа x64. Выбор 64-х битного варианта системы обусловлен несколькими критически важными факторами.
1. Для 32-х битной системы (x86) доступно только 3,24 Гб адресного пространства оперативной памяти. Сегодня, 4 Гб — это не так и много. И многие новые ноутбуки и стационарные ПК продаются с объемом памяти 6 Гб и выше. Поэтому выбор однозначен в пользу 64-х битной системы, которая не имеет таких ограничений. Более подробно о различиях редакций Windows 8 можно прочитать на сайте Microsoft.

2. Полученный нами образ скорее всего будет размером больше чем 4Гб. Мой установочный образ с «джентельменским» набором программ (включая и MS Office 2013) занимает 7,5 Гб. При установке 32-х битного варианта Windows, если размер образа будет занимает больше чем 4Гб, то будет выдаваться ошибка. При использовании установки 64-х битного варианта, таких проблем нет. Те, кто захочет создать свою сборку на основе 32-х битного образа установки Windows, имейте ввиду этот факт. В этом случае размер развернутого дистрибутива со всеми установленными программами должен занимать ориентировочно около 12 Гб, и тогда в дальнейшем, при его компрессии в конечный установочный образ, его размер будет не больше 4-х Гб.

Оценочные 90-дневные версии Windows 8 можно скачать по ссылке с сайта Microsoft
Или официальные, доступные для подписчиков MSDN.

Диспетчер виртуальных машин VirtualBox

Я использую виртуальную машину для установки первоначального образа системы и дальнейшей настройки программ, так как это наиболее удобный и быстрый способ который существенно позволяет сэкономить время.
Скачать VirutualBox можно на официальном сайте Oracle VM VirtualBox.
Сам установочный пакет диспетчера виртуальных машин, на текущий момент актуальная версия VirtualBox 4.2.12 for Windows hosts  x86/amd64
И по желанию, можно скачать пакет дополнения VirtualBox 4.2.12 Oracle VM VirtualBox Extension Pack All supported platforms
Утилита Imagex

С помощью этой утилиты мы создадим конечный образ нашей сборки, пригодный для установки на других компьютерах.
Эта утилита входит в набор Комплект средств для развертывания и оценки Windows (ADK) для Windows 8 (сокращенно WAIK for Windows 8). Комплект занимает больше 2,5 Гб.
Нам же в данном случае будет достаточно только утилиты Imagex, скачать ее можно по этой ссылке imagex.zip(~590 Кб)
Конструктор RDS Boot KIT и комплект Recovery DiskSuite

Это очень мощный конструктор, позволяющий создать загрузочную флешку, на которой по желанию можно разместить одновременно различные реаниматоры такие как HirensBootCD, LiveCD, Kaspersky Rescue Disk, и др., а так же, дистрибутивы операционных систем — WinXP, Win7 и Win8. Главное чтобы хватило место на флеш-накопителе. Аналогов на текущий момент ему нет ни в рунете, ни на «загнивающем» западе :).

Необходимо скачать последнюю версию конструктора RDS Boot KIT с сайта http://disksuite.ru/ и по желанию, сам набор Recovery DiskSuite, включающий в себя iso образы различных реаниматоров и дистрибутивов. Я предпочитаю использовать собственные проверенные образы, а не те, что идут в комплекте с Recovery DiskSuite.
На всякий случай даю ссылку на версию конструктора, работа с которым описана в руководстве RDS Boot KIT.zip.

Флеш накопитель 8Gb и больше

Флешка объемом 8Gb — это минимум, но тут действует правило — чем больше, тем лучше. Такого объема, кстати, может и не хватить, если будет устанавливаться множество программ. Я приобрел объемом 32Gb, но теперь понимаю, что надо было 64Gb, чтобы поместилось больше собственных сборок дистрибутивов других версий Windows.
~50Gb свободного места на HDD, как минимум

Одним и из преимуществ использования виртуальной машины, является то, что можно создавать моментальные снимки состояния виртуальной машины, и в дальнейшем возвращаться к любому из этих снимков. Своеобразная машина времени. Я делал снимки после прохождения каждого этапа создания собственной сборки. И если где-то делал ошибку, то возвращался к предыдущему снимку и уже делал без ошибок. Но платой за это удобство выступает дополнительное место на жёстком диске, которое требуется для снимков.

Если скачать все полные дистрибутивы, и не скупиться на снимках состояния виртуальной машины, то желательно иметь около 100GB свободного места на жестком диске.

Этапы работы

1. Подготовительный этап. Установка и настройка диспетчера виртуальных машин. Создание и настройка самой виртуальной машины;
2. Установка Windows на виртуальной машине и перевод установки Windows в режим аудита;
3. Работа в режиме аудита. На этом этапе необходимо произвести обновление системы, установку и настройку программ, системы и профиля пользователя. После завершения этих действий, следует осуществить выход и из режима аудита и перевести Windows в штатный режим установки;
4. Подготовка конечного образа собственной установочной сборки Windows;
5. Запись собственной установочной сборки на флешку.
#1. Подготовительный этап

1. Устанавливаем VirutualBox, следуя шагам мастера установки. После установки запускаем диспетчер витуальных машин, идем в настройки Файл->Настройки и настраиваем в соответствии со следующей презентацией:
(На данный момент Slidershare глючит, даю ее ссылку на эту презентацию в GoogleDrive)
Настройка диспетчера виртуальных машин

Сначала мы устанавливаем порядок загрузки, указав устройство CD/DVD-ROM в качестве первого устройства на котором будет искаться загрузочная запись и с которого будет осуществляться загрузка.
Далее мы в привод CD/DVD-ROM виртуальной машины подключаем ранее сказанный нами образ установки Windows 8 Enterprise x64.
И на третьем слайде мы подключаем к нашей виртуальной машине флеш-накопитель, который предварительно должны подключить к нашему основному компьютеру. В дальнейшем нам предстоит с ним работать из виртуальной машины. Его название может отличаться от того, что на скриншоте. Это зависит от модели флеш-накопителя.

2. Создаем новую виртуальную машину, следуя указаниям мастера. Процесс создания ВМ и настройки ее параметров можно посмотреть на следующей презентации.


Настройки создания виртуальной машины

Оперативную память виртуальной машине необходимо выделять в зависимости от объема ОЗУ доступного для основной системы, чем больше выделим, тем быстрее будет работать виртуальная машина. Но желательно оставить основной системе как минимум 2Гб ОЗУ. У меня, к примеру, 12Гб, 6 Гб я выделяю на виртуальную машину, 6 оставляю основной системе.

#2. Установка Windows

1. После создания виртуальной машины, запускаем ее, автоматически начнется установка Windows, далее в процессе установки необходимо выбирать параметры, как показано в следующей презентации.

Установка Windows

По окончании копирования файлов и завершению установки, произойдет автоматическая перезагрузка, появиться экран первоначальной настройки системы (Персонализация), где нам необходимо выбрать цвет оформления и наименование компьютера.
Здесь целесообразно создать снимок виртуальной машины, чтобы в дальнейшем мы могли в любой момент вернуться к этому состоянию, или скопировать его в новую виртуальную машину, чтобы не тратить лишний раз время на установку системы. Для этого переходим в окно диспетчера виртуальных машин, и нажимаем кнопки команд, указанных на скриншоте ниже. Я назвал полученный снимок «Windows установлена».

Далее нам необходимо перевести установку Windows в режим аудита. Для этого возвращаемся в окно виртуальной машины на экране настройки первоначальных параметров (Персонализация) мы должны нажать комбинацию клавиш Ctrl+Shift+F3.

Происходит перезагрузка виртуальной машины и установка Windows переходит в режим аудита, осуществляется вход в систему под встроенной учетной записью Администратора.

#3. Работа в режиме аудита

Режим аудита используется для добавления настроек в установочные образы Windows. В этом режиме доступна установка приложений, добавление драйверов устройств и проверка работоспособности установки.

При входе на рабочий стол будет выдаваться диалоговое окно Программы подготовки системы.

Это окно будет появляться каждый раз при входе на рабочий стол после перезагрузки системы, пока она находиться в режиме аудита. Его следует закрывать.

#2.1 Установка обновлений

В первую очередь рекомендуется установить последние обновления. Подразумевается, что компьютер, на котором запущена виртуальная машина подключен к интернету.
Для этого нам необходимо будет включить автоматическое обновления и выполнить их установку.
Нажимаем комбинацию клавиш Win(флажок Windows)+X и выбираем пункт -> Панель управления\Система и безопасность\Центр обновления Window.
Процесс поиска, скачивания и установки обновлений показан в следующей презентации. После скачивания каждой порции доступных обновлений необходимо завершать работу системы, для их установки.

Установка обновлений Windows

Поиск и установку обновлений необходимо выполнить несколько раз, так как некоторые обновления появляются только после установки предыдущих.
До тех пор, пока не увидим сообщение о том что актуальных обновлений больше нет, как на скриншоте ниже:

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

После установки всех необходимых обновлений советую сделать очередной снимок виртуальной машины, я называл его «Windows обновлена».

#2.2 Установка приложений

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

Подробно на этом я останавливаться не буду, так как у каждого свой предпочитаемый набор программ, и их установка ничем не отличается от установки в обычном режиме работы Windows. Если какому-либо приложению необходимо перезагрузка системы, то можно это сделать какое угодно количество раз.

По завершении установки необходимых программ, настройки системы и профиля пользователя рекомендуется еще раз выполнить обновление системы, а после этого советую выполнить удаление временных файлов и исправление ошибок реестра с помощью какой-нибудь утилиты наподобие CCleaner.

Тут я рекомендую создать еще один снимок состояния виртуальной машины, и назвать его «Перед генерализацией»

#2.3 Генерализация Windows и переход в штатный режим установки

Дальше нам надо будет выполнить генерализацию системы, которая включает в себя очистку системы, удаление привязки к оборудованию и перевод установки Windows в штатный режим.

Прежде чем к этому приступать, нужно будет подготовить файл ответов автоматической установки Windows, в котором мы укажем, что при генерализации нужно будет скопировать данные профиля Администратора в профиль по умолчанию, на основе которого в дальнейшем будут создаваться профили пользователей нашей сборки.

Для этого в создадим в блокноте файл с именем CopyProfile.xml, в который необходимо будет вставить следующий текст:

 <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <CopyProfile>true</CopyProfile> </component> </settings> <settings pass="generalize"> <component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SkipRearm>1</SkipRearm> </component> </settings> </unattend> 

Или можете скачать готовый файл здесь CopyProfile.xml

Этот файл необходимо записать на нашу флешку. И подключить эту флешку к виртуальной машине, как это показано на следующем скриншоте, где показан правый нижний угол окна виртуальной машины.

Правой кнопкой мыши кликаем по значку USB устройства и в выпадающем меню выбираем нашу флешку.
После подключения флешке заходим в проводник Windows и смотрим, какая буква ей присвоена. Запоминаем ее.
У меня флешка подключилась под буквой E:\

Далее следует запустить командную строку: нажать комбинацию клавиш Win+R, в строке команд набрать cmd, после чего нажать кнопку ОК, как это показано на следующем скриншоте.

Откроется окно выполнения консольных команд, в котором необходимо запустить утилиту Sysprep c параметрами:

%systemroot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:E:\CopyProfile.xml

Где вместо буквы E в параметре /unattend:E:\CopyProfile.xml необходимо указать букву, присвоенную флешке подключенной к виртуальной машине.

Дальше идет процесс генерализации, по окончании которого виртуальная машина самостоятельно выключиться.

Если верить документации от Microsoft, то на этот теперь можно приступать к снятию образа, но делать этого не стоит (как верить документации, так и снимать образ. Доверяй но проверяй), так как полноценного копирования профиля администратора в профиль по умолчанию не происходит.
Поэтому придется сделать прыжок в подвывертом, и скопировать таки этот профиль.

Для этого снова включаем виртуальную машину и ждем загрузку Windows вплоть до появления диалога первоначальной настройки профиля пользователя (Персонализация). По ходу загрузки будет осуществлена установка обрудования, и перезагрузка. Следуя шагам мастера, создаем пользователя, тем самым завершая установку Windows как показано на следующей презентации


Настройка параметров персонализации пользователя

Ждем окончания настройки, пока будет создан профиль пользователя, после чего система загружается в штатном режиме готовая к работе.
Теперь нам необходимо включить встроенную учетную запись Администратора и зайти под ней в систему.
Опять нажимаем Win+X и в выпадающем меню выбираем пункт «Управление компьютером». Далее следуем пути: Служебные программы -> Локальные пользователи и группы -> Пользователи. 
В списке пользователей выбираем Администратора. Правой кнопкой — > Свойства. Снимаем галочку Отключить учетную запись. Жмем ОК.

Затем нам необходимо войти под учетной записью Администратора, которую мы только что включили. Нажимает комбинацию клавиш Правый Ctrl+Del(или в меню окна виртуальной машины выбираем пункты «Машина»->«Послать Ctrl+Alt+Del»), и выбираем пункт «Выход».
Заходим в систему под Администратором, и открывыем как и в предыдущем действии список управления пользователями. На этот раз, нам требуется удалить созданного ранее нами пользователя. Выбираем его в списке, правой кнопкой мыши открываем выпадающее меню и в нем пункт Удалить. Два раза будет выдан запрос на подтверждение удаления, и два раза соглашаемся удалить этого пользователя.

Снова открываем консольное окно, и выполняем запуск утилиты sysprep со следующими параметрами:

%systemroot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown

По окончании виртуальная машина выключиться.
Теперь все готово для того, чтобы снять окончательный образ установки Windows.
Следует сделать еще один снимок состояния виртуальной машины. И назвать его — «Перед снятием образа».

#4. Подготовка конечного образа установочной сборки Windows

На этом этапе нам необходимо создать файл install.wim, в котором будет находиться наша установочная сборка Windows.
Для этого включаем виртуальную машину. Тут надо быть внимательным и расторопным. Сразу после включения, в течении 5 секунд, появиться надпись «Press any key to boot from CD or DVD…», которая говорит нам о том, что необходимо нажать любую клавишу для загрузки установки Windows с виртуального CD/DVD привода. Надо успеть нажать любую клавишу, если вдруг не успеете, то можно закрыть виртуальную машину, восстановив снимок предыдущего состояния.

Если успели нажать вовремя, то загрузиться программа установки ОС Windows 8 с виртуального DVD. Ждем пока появиться окно приветствия и нажимаем комбинацию клавиш Shift+F10

Откроется окно ввода консольных команд. Теперь нам снова необходимо подключить нашу флешку к виртуальной машине, так как именно на нее мы будем записывать образ нашей сборки Windows.

Важно замечание — флешка должна быть отформатирована в формате NTFS, так как в отличие от FAT32, в этом формате файловой системы сняты ограничения на максимальный размер файлов в 4Gb, а скорее всего полученный нами образ будет занимать больше 7Гб.
Чтобы отформатировать флешку, необходимо выбрать ее в проводнике основной системы, нажатием правой клавиши мыши вызвать выпадающее меню, в котором выбрать пункт «Форматировать…», и настроить параметры в соответствии с теми что указаны на скриншоте

Также, на флешку, необходимо записать утилиту imagex.exe, ссылку на архив с этой утилитой я давал в начале этой статьи.

После того, как подключили флеш накопитель к виртуальной машине, необходимо определить буквы дисков, на которых находиться настроенная нами Windows, и букву подключенной нами флешки.
Если все делать как написано в этом руководстве, то диск с настроенной нами Windows будет находиться на диске D:\, а подключенная нами флешка под буквой F:\
Проще всего это проверить, перейдя на нужный диск, введя команду d: и нажав клавишу Enter, а после выполнив команду dir, которая покажет содержимое диска.

Так же следует проверить и диск F:

Чтобы снять образ, необходимо ввести в консоли команду

F:\imagex\x64\imagex.exe /capture D: F:\install.wim /flags «Enterprise» «Windows 8 Enterprise» «My Windows 8 Build» /compress maximum

Подробнее о Imagex можно прочитать на сайте Microsoft по этой ссылке — утилита Imagex.

F:\imagex\x64\imagex.exe – путь к утилите imageX 
/capture D: - параметр, указывающий что необходимо произвести захват раздела D: 
F:\install.wim - указываем путь к сохраняемому WIM-файлу, в который будет захвачен образ раздела D:. /flags «Enterprise» - флаг, обозначающий редакцию Windows 8. 
«Windows 8 Enterprise» - имя образа.
«My Windows 8 Build» - (необязательно) описание образа
/compress maximum - тип сжатия файлов в образе. Для параметра /compress допустимы значения maximum (максимальное сжатие), fast (быстрое сжатие) и none (без сжатия). Если параметр не указан, используется быстрое сжатие. Максимальное сжатие позволяет уменьшить размер образа, но захват занимает больше времени, чем при быстром сжатии. Скорость распаковки образа практически не зависит от типа сжатия.

Захват образа достаточно длительный процесс, и занимает продолжительное время, от одного часа до 4-х. В зависимости от мощности компьютера, оперативной памяти выделенной для виртуальной машины, и размера самой сборки.

После окончания снятия образа, у нас будет создан файл install.wim на флеш-накопителе. Можно выключить виртуальную машину, больше она нам не понадобиться.
Файл install.wim следует скопировать на жесткий диск основного компьютера, мы с ним будет работать на следующем этапе, когда мы будет создавать загрузочную флешку, предварительно ее отформатировав.

#5. Создание загрузочного флеш-накопителя с собственной сборкой Windows

Для создания загрузочной флешки с собственной сборкой нам понадобиться конструктор RDS Boot KIT с сайта http://disksuite.ru/

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

Нас же интересует непосредственно создание загрузочного носителя и запись на него созданной нами ранее установочной сборки Windows.

Создаем папку на жестком диске, я назвал ее RDS, скачиваем в нее конструктор, и запускаем его. При первом запуске создается структура каталогов конструктора, и на этом конструктор завершает свою работу, с сообщением, что необходимо разместить соответствующие ISO образы в предназначенные для этого каталоги.

Теперь необходимо разместить ISO образ установки Windows 8, с которого мы ранее устанавливали Windows на виртуальную машину, в папку конструктора по пути: RDS\Windows8\x64

Снова запускаем конструктор, и следуем его указаниям. Сначала указывает букву диска, назначенной флеш-накопителю, с которым мы собираемся работать, и обязательно необходимо после буквы поставить двоеточие. Соглашаемся на форматирование и в качестве файловой системы выбираем NTFS, после чего соглашаемся скопировать дистрибутив Windows8, и ждем окончания работы конструктора.

Теперь у нас есть готовая загрузочная флешка. На следует заменить стандартный файл стандартной сборки Windows на созданный ранее нами.
Для это на флешке по пути Windows8\x64 заменяем файл install.wim тем, который мы создали ранее на этапе #4.
И еще один момент есть. Рядом с файлом Install.wim на флешке находится файл ответов автоматической установки Windows который называется AutoUnattend.xml. Его надо обязательно заменить, на созданный нами.

Для этого создаем в блокноте файл с именем AutoUnattend.xml и вставляем в него следующий текст:

 <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SetupUILanguage> <UILanguage>ru-RU</UILanguage> </SetupUILanguage> <InputLocale>en-US;ru-RU</InputLocale> <SystemLocale>ru-RU</SystemLocale> <UILanguage>ru-RU</UILanguage> <UserLocale>ru-RU</UserLocale> </component> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserData> <ProductKey> <Key></Key> </ProductKey> <AcceptEula>true</AcceptEula> </UserData> <Display> <ColorDepth>32</ColorDepth> <HorizontalResolution>1280</HorizontalResolution> <VerticalResolution>800</VerticalResolution> </Display> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>en-US;ru-RU</InputLocale> <UILanguage>ru-RU</UILanguage> <UserLocale>ru-RU</UserLocale> <SystemLocale>ru-RU</SystemLocale> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <OOBE> <HideEULAPage>true</HideEULAPage> <HideLocalAccountScreen>false</HideLocalAccountScreen> <HideOnlineAccountScreens>false</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>false</HideWirelessSetupInOOBE> <SkipMachineOOBE>false</SkipMachineOOBE> <ProtectYourPC>1</ProtectYourPC> <SkipUserOOBE>false</SkipUserOOBE> </OOBE> <TimeZone>Central Asia Standard Time</TimeZone> </component> </settings> </unattend> 

Либо можно скачать уже готовый файл по этой ссылке AutoUnattend.xml

Вот и все, у нас есть готовая загрузочная флешка с собственным образом установки Windows. Который существенно сэкономит время на развертывание Windows.

Как с помощью программы NTLite создать собственную сборку Windows

Не секрет, что большинство дистрибутивов Windows, из тех, которые выкладываются на торрент-трекерах, являются пользовательскими сборками. Все эти сборки, пусть и условно, можно разделить на два типа. К первому типу относятся сборки с сохранёнными исходными системными компонентами и интегрированным в них сторонним программным обеспечением, ко второму типу относятся так называемые облегченные сборки, из которых вырезано добрая половина компонентов.

Не секрет и то, что именно такие легкие сборки доставляют пользователям больше всего проблем.

Изначально в Windows закладывается больше возможностей, чем это может понадобиться среднему пользователю, система, если можно так сказать, дается на вырост. И вот, если некий юзер захочет к своей системе что-то прикрутить, ранее неиспользуемые им компоненты окажутся даже очень кстати. А теперь представьте, что у этого самого юзера установлена облегченная сборка. Интересно знать, кого помянет он недобрым словом, создателя этой сборки или самого себя, такого недальновидного, умудрившегося повестись на обещанную легкость и производительность Lite-системы.

Так как же быть, может быть пользоваться только официальными сборками? Необязательно, особенно если у вас маломощный компьютер, просто иногда лучше сделать всё самому, то есть собрать образ Windows самостоятельно с учетом ваших нужд. Как это сделать, как раз будет изложено в этой статье. Создавать сборку мы предлагаем с помощью программы NTLite. Она платная, цена домашней версии составляет 40 долларов, кто не хочет платить, могут поискать в интернете пусть и не самые новые, но «вылеченные» и вполне рабочие версии.

Что такое NTLite

Программа NTLite — это мощный инструмент для создания модифицированных сборок Windows. С ее помощью вы можете удалить с дистрибутива системы всё то, что вам покажется лишним либо же напротив, добавить в него то, чего в нём не было изначально. NTLite позволяет удалять из образов системные компоненты, отключать службы, задавать настройки, интегрировать сторонний софт, твики реестра, драйвера и обновления.

Требует ли NTLite от сборщика каких-то знаний? Да. Необходимо по меньшей мере знать, каким целям служат те или иные компоненты, иначе можно на выходе получить глючную систему. Но это, если вы собрались облегчать сборку. Интеграция сторонних компонентов намного менее рискованна.

Создание собственной сборки Windows

Конструирование сборки проходит в три этапа. На первом производится распаковка образа Windows, на втором — его настройка в программе NTLite, на третьем этапе выполняется упаковка файлов в установочный образ. Первым делом распакуем архиватором установочный ISO-образ с Windows в отдельную папку. Пусть он называется data.

Запускаем NTLite, жмем кнопку «Добавить» и указываем путь к папке с распакованным ранее образом ISO. При этом в окне программы вы увидите структуру образа, в котором, кстати, могут быть несколько редакций. Мы будем работать с редакцией Windows 10 Pro. Кликаем по ней ПКМ и выбираем опцию «Загрузить». Если программа попросит подтвердить преобразование образа WIM в ESD, подтверждаем операцию. Процедура преобразования (загрузки) WIM или ESD образа займет некоторое время. По завершении процедуры в левой части окна программы вы увидите панель с несколькими вкладками. Пробежимся по ним по-быстрому.

Удаление и отключение компонентов и служб

В разделе «Компоненты» содержатся модули Windows, которые можно отключить, сняв с них галочки. Сюда входят предустановленные универсальные приложения вкупе с Защитником, компоненты аппаратной поддержки некоторых периферийных устройств и их драйвера, модули мультимедиа — темы, звуки, обои и прочее, сетевые службы и приложения, например, менеджер платежей NFC, системные компоненты — Hyper-V, подсистема Linux, редактор символов, теневое копирование и многое другое. Некоторые компоненты заблокированы по совместимости, это означает, что их нельзя удалить, но можно отключить в разделе «Функции». При удалении компонентов необходимо проявлять осторожность, внимательно знакомиться с описаниями, благо, они даются на русском языке.

В разделе «Функции» отключаются недоступные для удаления компоненты, например, NET Framework. Среди доступных для отключения модулей — офисные игры, гаджеты, клиент рабочих папок, индексация и поиск, подсистема Linux, WMC, службы IIS, PowerShell 2.0, PDF-принтер и Internet Explorer, отключать который, кстати, не рекомендуется, поскольку это может привести к неправильной работе других программ.

Раздел «Настройки» отвечает за включение/отключение различных настроек, действующих для всех пользователей системы, раздел «Службы» — за включение/отключение системных служб. Здесь, как и в «Компонентах» нужно быть внимательным, чтобы не отключить важную службу, без которой Windows даже не сможет запуститься. Особенно это касается служб во вкладке «Дополнительные службы».

Интеграция обновлений, драйверов и твиков реестра

Следующие три вкладки содержат инструменты для интеграции в дистрибутив обновлений, драйверов и твиков реестра. Если нужно добавить, скажем, новое обновление безопасности или языковой пакет, жмем кнопку «Добавить» и указываем путь к файлу CAB, MSU или EXE. В этом же разделе отображаются уже установленные пакеты. С драйверами всё аналогично, только драйвер должен быть распакован, поскольку NTLite понадобится его конфигурационный inf-файл. Точно так же в систему интегрируются твики реестра: жмем кнопку «Добавить» и указываем путь к файлам REG.

Персональные настройки и установка сторонних программ

Если сборка создается для себя, не будет лишним заглянуть в раздел «Автоматическая». Здесь задаются персональные настройки пользователя: имя компьютера, локализация, часовой пояс, сетевые настройки, опции оболочки, сжатие, параметры лицензирования (установка ключа и т.д.), выполняется настройка WinPE.

Если вы хотите интегрировать в образ стороннее программное обеспечение, сделать это можно будет в разделе «После установки» с помощью функции Post-Install. В этом также нет ничего сложного просто жмем уже знакомую кнопку «Добавить» и указываем путь к исполняемым файлам приложений. Процедура их установки будет поочередно запущена на раннем этапе установки сборки Windows. Дополнительно поддерживается установка с параметрами, — в поле «Параметры» прописываются нужные ключи, например, для тихой установки.

Сохранение настроек и упаковка сборки в образ

По большому счету это всё, осталось только применить заданные настройки и упаковать файлы модифицированной сборки в установочный образ. Переключаемся на вкладку «Применить» и определяемся с параметрами образа. При создании сборки Windows 7 всё можно оставить по умолчанию, если это будет сборка Windows 8.1 или 10, необходимо выбрать формат образа «Высокое сжатие», при котором WIM-образ преобразуется в ESD. После этого отмечаем галочкой чекбокс «Создать ISO».

Почти всё готово, можно приступать к упаковке. Присвоив сборке подходящее имя, жмём кнопку «Обработка». Если в вашей системе включен Защитник, NTLite попросит его отключить, так дело пойдет быстрее. Время создания сборки будет зависеть от количества заданных операций, причем большую часть времени займет конвертирование WIM в ESD (в Windows 8.1 и 10), в среднем вся процедура занимает от 40 минут до часа или более. По завершении вы получите готовый установочный образ, который можно записать на флешку или оптический диск.

Спешить устанавливать полученную сборку на свой компьютер, а тем более выкладывать ее на торрент или другой ресурс, однако, не стоит. Сначала нужно убедиться, что сборка рабочая, для чего необходимо протестировать ее на виртуальной машине. Впрочем, можно обойтись и без виртуальной машины. Если у вас есть свободный компьютер, с помощью NTLite вы можете модифицировать установленную на него Windows, выбрав в главном окне «Живая установка» и проделав всё то же самое, о чём было сказано выше. Правда, сохранить в отдельный образ ISO или ESD «живую» систему не получится, зато тестировать ее можно будет тут же на физической машине, выявляя наиболее подходящие варианты модификации.

Официальный сайт разработчика: www.ntlite.com

Создание своей сборки Windows вместе с пользовательским профилем

Привет, друзья. На нашем сайте мы не единожды касались темы создания собственной сборки Windows, у нас есть даже целая подборка статей, закреплённая за тегом «Своя сборка Windows». Но до этого момента мы рассматривали создание своей сборки так, как оно и должно быть – мы создавали сборку Windows в режиме аудита, настраивали систему под наши предпочтения, устанавливали программы, избавлялись от привязки к комплектующим, затем упаковывали установочный образ. И очень часто в комментариях к этим статям некоторые наши читатели жаловались, что у них в сборке не сохраняются какие-то настройки и программы. Так может быть, если эти настройки и программы профильные. Чтобы сборка Windows включала наши профильные настройки и программы, нам, соответственно, нужно создать сборку с профилем, т.е. с некой дефолтной учётной записью. Давайте поговорим о специфике профильных настроек Windows и создадим свою сборку с профилем.

Создание своей сборки Windows вместе с пользовательским профилем

Что такое пользовательский профиль Windows

Итак, друзья, сборка Windows с пользовательским профилем, т.е. с предустановленной локальной учётной записью пользователя.

Тема актуальная, учитывая, что в Windows 10 особо смещён акцент на профильное содержимое каждого из пользователей. Да и если мы говорим о создании чётко заточенной под себя системной сборки, такая сборка может быть только с профильными настройками. Когда-то у меня повредилась моя учётная запись Windows 10, и мне пришлось создать новую. Так вот настройка новой учётной записи, установка однопрофильных программ, импорт настроек и настройка по новой многопрофильных программ – всё это заняло жутко много времени, навскидку раза в три дольше, чем обычно у меня проходит процесс установки Windows 10, ведь на SSD-диске это достаточно быстро. Но давайте разберёмся, что такое пользовательский профиль Windows, и почему он не предусматривается при создании своей сборки операционной системы в режиме аудита.

У системы Windows есть компоненты, общие для всех и отдельные для каждого пользователя. Общие – это системный функционал и классические сторонние программы, устанавливающиеся в папки по пути «C:\Program Files» и «C:\Program Files (x86)». Но, обратим внимание, в корне диска С есть системная папка «Пользователи».

В этой папке хранятся папки профилей каждого из пользователей. Windows – многопрофильная операционная система, в ней можно создать сколь-угодно пользовательских профилей. По слухам, кто-то когда-то проводил эксперимент, желая узнать, сколько Windows сможет уместить учётных записей, и у него вышло более 4 млрд. штук (точно 4294967296). Каждый из пользователей вместе с профилем получает свой личный рабочий стол, свою возможность настроить внешний вид Windows, свои профильные папки «Загрузки», «Видео», «Документы» и пр. для хранения персонального контента.

Но главное – каждый пользователь получает свои профильные программы. Внутри папки «Пользователи» для каждой учётной записи есть не только профильные папки для хранения контента, есть ещё скрытая папка «AppData», где хранятся файлы установки однопрофильных программ и профильные файлы настроек каждого из пользователей, создаваемые многопрофильными программами.

Большая часть классических программ – многопрофильные, они устанавливаются для всех пользователей Windows, но каждый их может настроить по-своему. Яркие примеры таких программ – браузеры и офисные пакеты. А некоторые многопрофильные программы в процессе своей установки могут предусматривать тип установки – для всех пользователей или только для текущего.

А есть программы однопрофильные, устанавливающиеся и настраивающиеся только для текущего пользователя Windows. Из классических это обычно такие, которые предусматривают индивидуальную работу - почтовые клиенты, RSS-ридеры, различные органайзеры и т.п. Все современные UWP-приложения Windows 10 – только однопрофильные, штатные устанавливаются при создании учётной записи, нештатные каждый пользователь устанавливает только для себя в Microsoft Store. 

Пользовательский профиль – это индивидуально настроенное виртуальное пространство, из этих соображений профиль не может быть включён в сборку Windows. Ведь операционная система – это, образно выражаясь, стандартная площадка, на которой каждый строит свои песчаные замки. Режим аудита, в котором настраивается системный образ, не предусматривает создание пользовательских учётных записей, а сам этот режим выполняется с использованием скрытой учётной записи администратора. И после выхода из режима аудита все настройки, касающиеся профиля, не применяются. Применяются только те, что относятся к общим компонентам Windows. Вот, друзья, почему некоторые из вас не могут создать такую сборку системы, как хотят. Нужно разбираться в компонентах Windows, чтобы понимать, что сохранится в системе после выхода из режима аудита, а что – нет. И вот если мы хотим сборку Windows с профильными настройками и программами, нам её нужно создать на базе эталонного образа операционной системы с неким дефолтным профилем. Т.е. мы должны работать в эталонной системе, не прибегая к режиму аудита. Что же, давайте это сделаем.

Установка и настройка эталонной Windows

Друзья, эталонная Windows – это протосистема. Это установленная и настроенная образцовая операционная система, образцовый снимок, который впоследствии будет разворачиваться при установке нашей сборки. Эталонную Windows можно установить на виртуальную машину, в VHD-файл, либо же на другой диск компьютера. Я выберу последний вариант. В управлении дисками я сожму имеющийся у меня раздел С.

Сожму примерно на 20 Гб, мне этого хватит для эталонного образа, я не сильно буду его кастомизировать.

Высвобожденное при сжатии место оформлю в раздел.

И на этот раздел установлю эталонную Windows. Вы же можете установить эталонную Windows в файл VHD, на виртуальную машину VMware, VirtualBox или Hyper-V. Если вы так же, как и я, выберете установку эталонной Windows на другой раздел диска, такую установку можете выполнить традиционным способом с использованием установочного носителя. Загружаетесь с него, проходите шаги процесса установки.

И на этапе выбора места установки выбираете другой раздел диска.

Либо же вы можете обойтись без установочного носителя и установить эталонную Windows на другой раздел из среды вашей рабочей Windows с помощью программ WinNTSetup и Dism++. В любом случае при первом запуске компьютера с установленной на другой раздел Windows у нас будет меню выбора загрузки операционных систем, и в нём нам для работы с эталонной Windows необходимо выбирать, соответственно, её.

В общем, устанавливаем новую Windows и создаём пользовательский профиль, т.е. первую локальную учётную запись. Вы можете создать её с техническим именем типа User, SysUser или WinUser, которое впоследствии будет меняться на имя конкретного пользователя. Но если вы делаете сборку только для себя, то сразу можете создать учётную запись со своим именем.

Далее можем настроить параметры конфиденциальности.

Дожидаемся, когда система доустановится. И приступаем к её кастомизации – настраиваем, устанавливаем программы и приложения. Повторюсь, мы делаем сборку Windows с профилем, поэтому в этой сборке сохранятся и системные, и профильные изменения. Вы можете выбрать приятные вам обои рабочего стола, внести прочие настройки персонализации, настроить браузер, почтовик, календарь, медиаприложения и т.п. Не бойтесь, что что-то канет в небытие.

Сброс привязки к комплектующим

По завершении всех установок и настроек, отвязываем Windows от комплектующих. Жмём клавиши Win+R, вписываем:

Запускаем утилиту Sysprep.

В окошке утилиты выставляем действие «Переход в окно приветствия (OOBE)». Параметры завершения работы оставляем «Перезагрузка». Жмём «Ок».

Утилита Sysprep выполнит свою работу.

И после перезагрузки мы уже в меню загрузки выбираем не эталонную, а нашу рабочую Windows.

Далее мы будем захватывать образ эталонной Windows в файл WIM с помощью программы Dism++.


Примечание: друзья, если вы эталонную Windows настроили на виртуальной машине, то в окне Sysprep перед запуском работы утилиты параметр завершения работы укажите «Выключение». И затем запустите виртуальную машину с ISO-образа WinPE 10-8 Sergei Strelec, на его борту есть программа Dism++.

Захват эталонной Windows в файл WIM и упаковка в ISO

Но, прежде чем делать захват эталонной Windows, давайте её почистим. Запускаем программу Dism++. На ленте вверху выбираем образ эталонной Windows. Идём в раздел «Очистка» и чистим систему от хлама.

И, собственно, захватываем образ в файл WIM. В меню программы жмём «Файл - Сохранить образ как».

Жмём кнопку обзора.

Сохраняем образ под именем «install». Тип файла должен быть «Максимальное сжатие», это формат образа WIM. Если вы выберите тип «Ультрасжатие», то образ упакуется в формат образа ESD.

Жмём «Ок».

И ждём, пока захват будет выполнен. Его прогресс будет виден нам на ленте вверху окна программы.

И вот наша эталонная Windows захвачена в файл install.wim.

Теперь можем подменить этим файлом исходный файл install.wim в установочном ISO той Windows, которую мы использовали в качестве эталонной. Как это сделать, смотрите в статье «Как пересобрать установочный ISO-образ Windows», в ней описывается способы пересборки установочного ISO с использованием двух программ – той же Dism++ и UltraISO.

Удаление эталонной Windows

Сборку мы создали, теперь можем удалить эталонную Windows на другом разделе диска. Как это делается, смотрите в статье «Как удалить вторую Windows».

Особенности установки сборки Windows с профилем

Друзья, мы создали сборку Windows с дефолтным пользовательским профилем, но установка такой сборки имеет свои особенности. Хоть в сборке и есть профиль, в процессе установки системы нам всё равно нужно по новой указать региональные параметры.

И создать новую учётную запись. Если вам не нужна вторая учётка Windows, создавайте её с любым именем.

Когда эта учётная запись запустится, выйдите из системы.

Входите в дефолтную учётную запись.

И из неё удалите учётную запись, созданную при установке Windows.

Метки к статье: Своя сборка Windows Dism

Как создать свою сборку Windows с помощью программы Dism++

Привет, друзья. Мы продолжаем обзор возможностей одной примечательной программы, Mast Have для системщиков и энтузиастов - Dism++. Эта статья будет своего рода кульминацией всего цикла публикаций об этой программе: в ней мы рассмотрим, как с помощью Dism++ создать свою сборку Windows. А свою сборку Windows с помощью этой программы можно создать легко и просто. Нам не нужно будет никаких виртуальных машин для создания эталонного образа системы, никаких установочных или Live-дисков для захвата образа, никаких командных строк. Мы с помощью Dism++ создадим эталонный образ Windows для сборки в файле VHD, настроим его. С помощью той же Dism++ очистим его, применим к нему твики, внедрим обновления. И, опять же, с помощью Dism++ мы захватим образ в файл WIM или ESD и потом запакуем его в установочный ISO.

Как создать свою сборку Windows с помощью программы Dism++


Примечание: друзья, если вы являетесь истинным гурманом в сфере создания собственных сборок Windows и ищите свой идеальный способ их создания, загляните сюда - в раздел публикаций, где собрано воедино множество различных способов создания собственного настроенного дистрибутива. Или можете юзать тег «Своя сборка Windows».

***


Итак, мы хотим создать свою сборку Windows 7, 8.1 или 10. Нам для этого понадобятся:
•    Установочный ISO-образ нужной версии и редакции Windows,
•    Программа Dism++,
•    Штатное управление дисками.

Создание виртуального диска VHD


Чтобы создать свою сборку Windows, нам нужно установить новую операционную систему. И на её базе сформировать эталонный образ Windows – систему без пользовательских профилей, но с внесёнными необходимыми настройками, установленными системными компонентами, обновлениями и программами. И такой вот эталонный образ мы создадим на виртуальном диске VHD. Жмём клавиши Win+R, вводим:

diskmgmt.msc 

И запускаем системное управление дисками. В нём жмём «Действие», затем – «Создать виртуальный жёсткий диск».
Указываем расположение файла VHD виртуального диска, его размер и тип. Я укажу небольшой размер – 30 Гб и выберу тип динамический. После создания своей сборки мы удалим виртуальный диск, так что все эти параметры особого значения не имеют.
После создания виртуального диска инициализируем его.
Выбираем стиль разделов диска такой, как и у физических дисков компьютера, у меня это GPT.
Из пустого места проинициализированного виртуального диска создаём обычный NTFS-раздел.
И вот итог: у нас должен получиться в системе лишний диск с единственным разделом под эталонную Windows.

Установка эталонной Windows на VHD-диск


Теперь нам нужно установить на этот VHD-диск Windows, которую мы настроим под эталонный образ своей сборки. Запускаем программу Dism++. Жмём «Файл», потом - «Применить образ».
В графе «Введите путь к файлу образа» с помощью кнопки обзора указываем путь к установочному ISO-образу Windows. Я, например, буду использовать установочный ISO Windows 8.1 сборки AIO by Sergei Strelec, это сборка на базе чистого образа Microsoft с вырезанными Modern UI приложениями. В графе «Система» указываем редакцию устанавливаемой Windows. Далее в последней графе указываем тот раздел, который мы создали на виртуальном диске. ставим галочку «Доб.загр.». И жмём «Ок». Важно: друзья, если вы, возможно, выберете вариант с установкой эталонного образа Windows не в файл VHD, а на другой раздел диска, то, если такой раздел имеет данные, ставьте ещё галочку «Формат».
Далее соглашаемся с внесением новой системы в меню загрузки. Если у вас несколько дисков с загрузчиками, тогда жмите кнопку «Больше» и укажите программе Dism++ правильный диск и раздел загрузчика.
Далее ждём завершения процесса копирования файлов новой Windows. Прогресс можем отслеживать вверху окна, в блоке с новой системой.
По завершении жмём «Ок».
Эталонный образ установлен, далее можем перезагружаться, проходить этап установки драйверов и входить в учётную запись администратора для внесения изменений в систему. Но, друзья, я предлагаю немного задержаться и опробовать оптимизирующие возможности Dism++. Некоторые настройки эталонного образа мы можем провести с помощью программы в пару кликов, в едином интерфейсе, не запуская даже новую Windows.

Настройка эталонной Windows с помощью Dism++


Dism++ - это комплексный чистильщик, оптимизатор и твикер любых системных образов – как развёрнутых на диске, т.е. установленных рабочих систем, так и смонтированных для редактирования дистрибутивов. Как мы можем настроить нашу эталонную Windows с помощью программы?

Примечание: друзья, обращаю ваше внимание - при проведении операций с эталонным образом Windows в программе Dism++ не забывайте первично переключаться вверху окна на нужный образ. Это должен быть синий блок с установленной на диск VHD системой, а не система, установленная на диске С. Не упустите этот нюанс.


И первым делом мы заглянем в раздел Dism++ «Управление загрузкой». Здесь при необходимости можем сделать предустановки для запуска системных служб. Если вы хотите, чтобы ваша сборка была с выключенными некоторыми службами, можете отключить их запуск.
Далее можем зайти в раздел «Оптимизация». Здесь собраны твики по настройке отдельных параметров Windows. Я воспользуюсь этой удобной возможностью Dism++ и внесу пару корректировок в оформление системы и отключу Защитник. Если у вас есть свои твики в виде Reg-файлов реестра, вы можете импортировать их.
Если вы хотите пакетно удалить современные приложения из Windows 8.1 или 10, убрать или, наоборот, добавить какие-то системные компоненты, загляните в раздел программы «Приложения и возможности».
Для интеграции обновлений в эталонный образ Windows, заходим в раздел «Обновления». Жмём кнопку «Анализ», дожидаемся появления перечня обновлений. Галочками отмечаем обновления, которые хотим установить. И жмём кнопку «Установить».

Настройка эталонной Windows в среде её самой


После предварительной настройки эталонного образа Windows с помощью Dism++ можем приступать к работе по настройке образа внутри самой системы. Перезагружаем компьютер и в меню выбора Windows выбираем ту, что установлена в VHD-файле. В моём случае на компьютере теперь установлено две Windows 8.1, и эталонная значится как Windows 8.1 на томе 6.
Наша эталонная Windows запустится, установит себе драйверы, затем на этапе создания пользовательского профиля мы должны войти во встроенную учётную запись администратора. Жмём клавиши Ctrl+Shift+F3.
Входим.И настраиваем эталонную Windows – вносим настройки, устанавливаем сторонний софт. При входе в учётную запись администратора у нас по умолчанию будет запущено окно программы подготовки системы, она же утилита Sysprep для сброса привязки эталонной Windows к комплектующим компьютера, на котором сейчас она установлена. Если надо установить какие-то программы, которые требуют перезагрузки Windows, то такую перезагрузку необходимо проводить только через окно Sysprep. С выставлением в качестве действия «Переход в режим аудита системы», а в качестве завершения работы – соответственно, «Перезагрузка».
По завершении всех настроек Windows в окне Sysprep в качестве действия указываем «Переход в окно приветствия (OOBE)». Ниже отмечаем галочкой «Подготовка к использованию». В качестве действия оставляем «Перезагрузка». Жмём «Ок».

Чистка эталонной Windows


После перезагрузки в меню загрузки выбираем нашу рабочую систему, в моём случае это Windows 8.1 на томе 3.
Далее будем проводить чистку эталонного образа, это уменьшит размер файла образа сборки Windows. Запускаем Dism++. Идём в раздел «Очистка». Жмём кнопку «Анализ». Ждём, пока программой будут выявлены данные для очистки. Потом жмём кнопку «Очистка».
В моём случае при очистке был высвобожден значительный вес данных.

Захват эталонной Windows в файл WIM или ESD


Теперь можем упаковывать эталонную Windows - делать её захват в файл WIM или ESD. В окне Dism++ жмём «Файл», далее – «Сохранить образ как». Жмём кнопку обзора.
Указываем путь сохранения, имя файла – install. И выбираем тип файла из числа предлагаемых нам вариантов: несжатый, сжатый образ, быстрое сжатие – всё это файлы разного уровня сжатия формата WIM, а ультрасжатие – это формат ESD. Я выберу последний, чтобы он занимал как можно меньше места. Но, друзья, знайте, что при выборе ультрасжатия в файл ESD процесс захвата образа будет длиться в разы дольше, чем при выборе сжатого файла WIM.
Путь, имя и тип файла захвата определены, жмём «Ок».
И дожидаемся завершения процесса захвата, т.е. создания файла install.wim или install.esd. У меня последний, кстати, вышел весом всего лишь 2,34 Гб. При этом в эталонный образ я внедрил четыре сторонние программы.

Создание установочного ISO


Наконец, последний этап всего этого действа – упаковка файла WIM или ESD назад в установочный ISO. И этот процесс мы также поручим программе Dism++. Но прежде нам нужно извлечь содержимое исходного установочного ISO, который мы использовали для установки эталонной Windows, в папку. В обычную папку с любым названием. Подключаем ISO для отображения в системе.
Друзья, если вы работаете в среде Windows 7, для подключения ISO вам нужно использовать сторонние программы типа UltraISO или Daemon Tools. Далее заходим на подключённый ISO. И копируем на нём все папки, кроме «sources».
Вставляем всё это в созданной папке с любым названием. В этой папке создаём новую папку с названием «sources».
Возвращаемся на подключённый ISO, заходим в папку «sources», делаем в проводнике вид данных таблицей, сортируем по размеру. И копируем все файлы, кроме install.wim или install.esd.
Вставляем эти файлы в пустой папке «sources» внутри папки с любым названием.
И теперь сюда же, в папку «sources» внутри папки с любым названием помещаем файл install.wim или install.esd, который мы на предыдущем этапе создали в процессе захвата образа эталонной Windows.
Теперь в программе Dism++ идём в раздел «Дополнительно». Кликаем «Создание ISO». Указываем в первой графе ту самую папку с любым названием, во второй – путь и имя файла ISO на выходе, в третьей – метку ISO (метку диска). Жмём «Ок».
Дожидаемся завершения.
И всё – наша собственная сборка Windows создана. Папку с любым названием можем удалить.

Удаление эталонной Windows на VHD-диске


Теперь, друзья, нам осталось, так сказать, убрать своё рабочее место – удалить нашу эталонную Windows, установленную на VHD-диске. Если она, конечно, не нужна вам, скажем, для экспериментов. Жмём клавиши Win+R, вводим:

msconfig

Идём в раздел «Загрузка» в окне запустившейся конфигурации системы. Кликаем запись о загрузке Windows на VHD-диске. Жмём «Удалить», потом – «Применить», потом – «Ок». На предложение о перезагрузке можем отказаться.
Далее идём в управление дисками Windows и отсоединяем виртуальный диск.
Последний шаг – удаление его файла VHD.

Метки к статье: Своя сборка Windows Dism Программы

Создание своей сборки Windows 7 с предустановленным программным обеспечением в режиме аудита

Здравствуйте! Напишите пожалуйста подробную статью о создании своей сборки Windows 7 с предустановленным программным обеспечением! Сейчас на моём компьютере установлена Windows 10 и можно ли прямо в ней создать настроенную сборку седьмой винды? Читал на вашем сайте предыдущие статьи на эту тему, за них отдельное спасибо.

Создание своей сборки Windows 7 с предустановленным программным обеспечением в режиме аудита

Привет друзья! Совсем недавно на нашем сайте на данную тему была опубликована статья моего друга Владимира, в ней мы создавали в режиме аудита дистрибутив Windows 10 и хочу сказать, что в случае с Windows 7 нужно делать всё то же самое, отличие самое незначительное, и о нём я вам обязательно расскажу. Ещё замечу, что совсем неважно, в какой винде вы хотите создать свою сборку Windows 7, это может быть сама семёрка или Windows 8.1, 10, делать нужно всё то же самое. Сегодня мы будем работать в Windows 8.1.В начале статьи несколько слов о режиме аудита. Режим аудита активно используют производители компьютерных устройств, создавая с помощью него настроенный дистрибутив Windows, содержащий какое-либо своё фирменное программное обеспечение (антивирус, утилиты диагностики, программу отката к заводским настройкам и т.д), впоследствии такой дистрибутив используется для установки винды на компьютеры и ноутбуки, которые мы покупаем в магазинах. Ещё режим аудита использую пираты для создания своих пиратских сборок. Сам я много раз создавал виндовые дистрибутивы с предустановленным программным обеспечением в режиме аудита и мне показалось, что самый простой способ создания дистрибутива ОС с предустановленным программным обеспечением, это использовать виртуальную машину.Итак, первым делом устанавливаем на наш компьютер VirtualBox.В VirtualBox создаём виртуальную машину Windows 7.

Загружаем виртуальную машину с ISO-образа Windows 7 и как обычно устанавливаем семёрку на виртуалку.

В конечной фазе установки ОС, жмём клавиатурное сочетание Ctrl+Shift+F3.

Операционная система переходит в режим аудита. Нажмите на крестик и закройте данное окно (после установки всех необходимых программ мы откроем его снова). В режиме аудита вы можете устанавливать и удалять программы, перезагружаться и завершать работу компьютера, одним словом экспериментируйте с Windows как хотите.

Устанавливаем все те программы, которые мы хотим иметь в дистрибутиве Win 7.

После установки софта заходим в папку C:\Windows\System32\Sysprep и запускаем утилиту Sysprep.exe

Запускается утилита "sysprep",

В появившемся окне с параметрами выставляем параметры:

Перевод системы в режим (OOBE).
Отмечаем пункт - Подготовка к использованию.
Завершение работы

и нажимаем ОК.

Windows 7 подготавливается утилитой "sysprep" несколько минут и затем VirtualBox выключается.

На данном этапе нам понадобится ISO-образ Windows 10. Загружаем виртуальную машину с ISO-образа Win 10. В начальном окне установки Windows 10 жмём клавиатурное сочетание «Shift+F10», открывается командная строка Среды предустановки Windows PE.

На данном этапе подсоедините USB-флешку к вашему компьютеру. Затем подключите USB-флешку к виртуальной машине. Устройства->USB выберите свою флешку.

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

diskpart

lis vol (данной командой выводим список разделов жёсткого диска, видим, что скрытому разделу (Зарезервировано системой) присвоена буква (C:), а разделу с установленной Windows 7 присвоена буква диска (D:), а USB-флешке буква (F:).

exit (выходим из DiskPart)

вводим следующую команду, которая произведёт захват диска (D:) с установленной Windows 7 в файл-образ формата WIM и сохранит его на USB-флешке (буква диска (F:).

Dism /Capture-Image /ImageFile:F:\install.wim /CaptureDir:D:\ /Name:Windows /compress:max

где,

install.wim: — это название будущего WIM-образа диска (C:) с Windows 7.

F:\ — место сохранения ESD-образа.

D:\ — раздел с установленной Windows 7.

Выключаем виртуальную машину.

Создание дистрибутива Windows 7

В результате всех вышеприведённых наших действий мы имеем на нашей флешке файл install.wim (размер 4.08 Гб), содержащий файлы операционной системы Windows 7 с предустановленным программным обеспечением и следующим шагом нам нужно собрать на основе его дистрибутив Win 7.

Виртуальную машину мы выключили и теперь в основной операционной системе наша флешка имеет букву диска (K:). На флешке находится файл install.wim размером 4.08 Гб.

Собираем ISO-образ Windows 7 с новым файлом install.wim

Скачиваем ISO-образ Windows 7,  

открываем его (подсоединяем к виртуальному дисководу (H:)) и копируем его содержимое. 

Затем создаём папку на флешке (K:) и называем её 7.

Вставляем в неё скопированное содержимое ISO-образа Windows 7.

После того, как файлы cкопировались, копируем файл install.wim на флешке.

и заходим на диск (K:) в папку K:\7\sources, щёлкаем правой мышью и выбираем "Вставить".

Выбираем "Заменить файл в папке назначения".

Оригинальный файл install.wim из дистрибутива Windows 7 заменён нашим файлом install.wim, содержащим программное обеспечение.

Комплект средств для развертывания Windows (Windows ADK)

Нам осталось превратить папку 7 с файлами Windows 7 в установочный ISO-дистрибутив с предустановленным программным обеспечением. Если Вы опытный пользователь, то наверняка на вашем компьютере установлен Комплект средств для развертывания Windows (Windows ADK), если нет, то скачайте его по ссылке и установите.

Для Windows 8.1

https://www.microsoft.com/ru-ru/download/details.aspx?id=39982

Для Windows 10

https://developer.microsoft.com/ru-ru/windows/hardware/windows-assessment-deployment-kit

После установки запускаем среду средств развёртывания и работы с образами.

вводим команду:

Oscdimg /u2 /m /bootdata 2#p0,e,bK:\7\boot\Etfsboot.com#pef,e,bK:\7\efi\microsoft\boot\Efisys.bin K:\7 K:\Windows.iso

где:

u2, это файловая система UDF, а m - размер образа без ограничений. 

b - загрузочный сектор записать etfsboot.com, путь к файлу etfsboot.com при указании b(boot) пишется без пробела bI:\10\boot\etfsboot.com

bK: - где K: - буква диска флешки.

K:\7 - создать ISO-образ из файлов и папок, находящихся на разделе K: в папке 7

K:\Windows.iso - созданный образ Win 10 разместить на разделе K: и присвоить имя образу Win 7 - Windows. 

Дистрибутив Windows.iso на флешке (K:) готов.

Создание загрузочной флешки

Установка Windows 7

Метки к статье: Своя сборка Windows Dism Windows 7

Создание собственного настроенного дистрибутива Windows 10. Способ для опытных пользователей

Привет, друзья. Сегодняшняя статья это продолжение статьи: - «Создание собственного настроенного дистрибутива Windows 10. Простой способ для начинающих пользователей». Отличие сегодняшней статьи от предыдущей в том, что использовать мы будем только встроенные в операционную систему средства, а точнее - командную строку и Комплект средств для развертывания Windows (Windows ADK).

Создание собственного настроенного дистрибутива Windows 10. Способ для опытных пользователей

Авторы - Владимир и Админ

Не буду ещё раз разглагольствовать Вам о том, для чего нужен собственный настроенный дистрибутив Windows 10, думаю это всем и так понятно, скажу лишь коротко. Вы устанавливаете Windows 10 на ноутбук, простой компьютер или даже виртуальную машину, потом устанавливаете весь необходимый софт вместе с антивирусом и после всего этого создаёте дистрибутив операционной системы, по вашему мнению отвечающий всем требованиям современного времени.

Установить Windows 10 с помощью такого настроенного дистрибутива можно на любой компьютер, после установки система будет уже настроена, а все программы установлены и вам останется инсталлировать только лишь драйвера.

 

Итак, для осуществления задуманного нам понадобится два компьютера или один компьютер, но с установленной на нём виртуальной машиной. Если у вас один компьютер, то вариант с виртуальной машиной описан в конце статьи.

 

Я обойдусь без виртуальной машины, так как у меня есть ноутбук и обычный стационарный компьютер. 

Начну с установки на ноутбук операционной системы Windows 10 со всеми драйверами и необходимыми мне программами, а также антивирусом. После установки на ноутбук Windows 10 с необходимым софтом, скачиваем на официальном сайте Майкрософт дистрибутив Windows 10 и создаём загрузочную флешку.

После создания загрузочной флешки с Win 10, запускаем встроенную в систему утилиту "sysprep", разработанную специально для подготовки настроенного образа Windows вместе с установленными программами к переносу на другой компьютер. Запускаем командную строку от имени администратора и вводим команду:

C:\Windows\System32\Sysprep\Sysprep.exe

Запускается утилита "sysprep"

В появившемся окне с параметрами выставляем всё так, как на скришноте

Перевод системы в режим (OOBE).

Отмечаем пункт - Подготовка к использованию.

Завершение работы

и нажимаем ОК.

1. Перевод системы в режим OOBE — режим переноса операционной системы активируется при следующем запуске системы.

2. Подготовка к использованию — из системы будут удалены все данные, которые не должны копироваться вместе с образом (идентификаторы безопасности (SID), сведения об активации и так далее), но установленное программное обеспечение должно перенестись без проблем.

Windows 10 подготавливается утилитой "sysprep" несколько минут.

 

Затем ноутбук выключается.

 

Создание файла-образа Windows 10 в формате ESD 

Подсоединяем к ноутбуку переносной жёсткий диск USB и загрузочную флешку с Windows 10.

Загружаем с флешки ноутбук. В начальном окне установки Windows 10 жмём клавиатурное сочетание «Shift+F10»,

открывается командная строка, ввожу команды:

diskpart

lis vol (данной командой выводим список разделов жёсткого диска, видим, что разделу с установленной Windows 10 присвоена буква диска C:, а переносному жёсткому диску буква I:)

exit (выходим из DiskPart)

вводим следующую команду, которая произведёт захват диска (C:) с установленной Windows 10 в файл-образ формата ESD и сохранит его на переносном винчестере USB (буква диска (I:).

Dism /Capture-Image /ImageFile:I:\install.esd /CaptureDir:C:\ /Name:Windows

где,

install.esd: — это название будущего ESD-образа диска (C:) с Windows 10.

I:\ — место сохранения ESD-образа.

C:\ — раздел с установленной Windows 10.

сжатие fast (параметр fast обеспечивает ускоренное сжатие образа, но получаемые файлы имеют больший размер, чем файлы, сжимаемые с параметром maximum, тип сжатия fast действует по умолчанию, если не указан аргумент сжатия (у нас он не указан)).

Прогресс операции 100%. Образ Windows 10 создан на разделе (I:). 

Сохранение образа

[==========================100.0%==========================]

Операция успешно завершена.

Выключаю ноутбук.

 

Compress:recovery

Включаю стационарный компьютер, подсоединяю к нему жёсткий диск USB.

На разделе (I:) переносного жёсткого диска USB находится файл-образ Windows 10 - install.esd размером 4,80 Гб.

Ещё больше сжимаю файл-образ Windows 10 - install.esd командой (делать это необязательно, просто я хочу дополнительно уменьшить образ Win 10)

Dism /Export-Image /SourceImageFile:I:\install.esd /SourceIndex:1 /DestinationImageFile:I:\install2.esd /Compress:recovery

то есть, этой командой мы создаём ещё один файл этого образа с именем файла install2.esd и сжатием recovery. Или умными словами - конвертируем файл install.esd в новый файл install2.esd, применив новый тип сжатия Compress:recovery (сжатие архива обычно называют конвертированием).

На разделе (I:) переносного жёсткого диска USB появляется второй файл-образ Windows 10 - install2.esd размером 3,5 Гб. Первый файл install.esd 4,80 Гб удаляем, а второй файл install2.esd 3,5 Гб переименовываем в install.esd.

Итого, на переносном винчестере USB (диск I:) находится один файл install.esd размером 3,5 Гб.

 

ISO-образ Windows 10

Скачиваем ISO-образ Windows 10.

Затем создаём папку на разделе (I:) переносного жёсткого диска USB и называем её 10, затем копируем в неё содержимое ISO-образа Windows 10.

После того, как файлы копировались, заходим на диск (I:) и копируем файл install.esd.

Заходим в папку I:\10\sources, щёлкаем правой мышью и выбираем Вставить.

Выбираем Заменить файл в папке назначения

Оригинальный файл install.esd из дистрибутива Windows 10 заменён нашим файлом install.esd.

 

Комплект средств для развертывания Windows (Windows ADK)

Друзья, теперь нам осталось превратить папку 10 с файлами Windows 10 в установочный ISO-дистрибутив.

Если Вы опытный пользователь, то наверняка на вашем компьютере установлен Комплект средств для развертывания Windows (Windows ADK), если нет, то скачайте его по ссылке и установите

https://www.microsoft.com/ru-ru/download/details.aspx?id=39982

После установки запускаем среду средств развёртывания и работы с образами.

вводим команду:

Oscdimg /u2 /m /bootdаta:2#p0,e,bI:\10\boot\Etfsboot.com#pef,e,bI:\10\efi\microsoft\boot\Efisys.bin I:\10 I:\Windows.iso

где:

u2, это файловая система UDF, а m - размер образа без ограничений. 

b - загрузочный сектор записать etfsboot.com, путь к файлу etfsboot.com при указании b(boot) пишется без пробела bI:\10\boot\etfsboot.com 

bI: - где I: - буква диска.

I:\10 - создать ISO-образ из файлов и папок, находящихся на разделе I: в папке 10

I:\Windows.iso - созданный образ разместить на разделе I:

присвоить имя образу - Windows. 

Дистрибутив Windows.iso на диске I: готов.

 

Создание загрузочной флешки

 

Предлагаю создать загрузочную флешку Windows 10 программой WinSetupFromUSB, с помощью неё можно создать универсальную флешку, с помощью которой получится установить Windows 10 на новый ноутбук с БИОСом UEFI, а также на простой компьютер с обычным БИОС. Подробно на этом останавливаться мне бы не хотелось, всё очень хорошо описано в этой статье.

Установка Windows 10

 

Процесс установки собственного дистрибутива Windows 10 ничем не отличается от обычного процесса установки описанного в этой статье. Установить такую сборку вы можете на любой компьютер.

Метки к статье: Своя сборка Windows Dism Windows 10

Создание сборок | Документы Microsoft

  • 2 минуты на чтение

В этой статье

Вы можете создавать однофайловые или многофайловые сборки с помощью IDE, например Visual Studio, или компиляторов и инструментов, предоставляемых Windows SDK. Самая простая сборка - это отдельный файл с простым именем, который загружается в один домен приложения.На эту сборку не могут ссылаться другие сборки за пределами каталога приложения, и она не проходит проверку версии. Чтобы удалить приложение, состоящее из сборки, вы просто удалите каталог, в котором оно находится. Для многих разработчиков сборка с этими функциями - это все, что нужно для развертывания приложения.

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

У вас есть несколько вариантов группировки модулей кода и ресурсов в сборки, в зависимости от следующих факторов:

  • Управление версиями

    Сгруппировать модули, которые должны иметь одинаковую информацию о версии.

  • Развертывание

    Группируйте модули кода и ресурсы, которые поддерживают вашу модель развертывания.

  • Повторное использование

    Сгруппируйте модули, если их можно логически использовать вместе для какой-либо цели.Например, сборка, состоящая из типов и классов, редко используемых для обслуживания программы, может быть помещена в ту же сборку. Кроме того, типы, которые вы собираетесь использовать в нескольких приложениях, должны быть сгруппированы в сборку, и сборка должна быть подписана строгим именем.

  • Безопасность

    Группировать модули, содержащие типы, требующие одинаковых разрешений безопасности.

  • Объем

    Сгруппировать модули, содержащие типы, видимость которых должна быть ограничена одной и той же сборкой.

При предоставлении доступа к сборкам среды CLR для неуправляемых приложений COM следует учитывать особые обстоятельства. Дополнительные сведения о работе с неуправляемым кодом см. В разделе Предоставление компонентов .NET Framework для COM.

См. Также

.

сборок в .NET | Документы Microsoft

  • 6 минут на чтение

В этой статье

Сборки образуют основные единицы развертывания, контроля версий, повторного использования, определения области действия и разрешений безопасности для приложений на основе .NET. Сборка - это набор типов и ресурсов, которые созданы для совместной работы и образуют логическую функциональную единицу.Сборки имеют форму исполняемых файлов ( .exe, ) или файлов библиотеки динамической компоновки ( .dll ) и являются строительными блоками приложений .NET. Они предоставляют общеязыковой среде выполнения необходимую информацию о реализациях типов.

В .NET Core и .NET Framework вы можете построить сборку из одного или нескольких файлов исходного кода. В .NET Framework сборки могут содержать один или несколько модулей. Это позволяет планировать более крупные проекты, чтобы несколько разработчиков могли работать с отдельными файлами или модулями исходного кода, которые объединяются для создания единой сборки.Дополнительные сведения о модулях см. В разделе Практическое руководство. Создание многофайловой сборки.

Сборки обладают следующими свойствами:

  • Сборки реализованы как файлы .exe или .dll .

  • Для библиотек, предназначенных для .NET Framework, вы можете совместно использовать сборки между приложениями, поместив их в глобальный кэш сборок (GAC). Перед включением в GAC сборок необходимо использовать строгие имена. Дополнительные сведения см. В разделе Сборки со строгими именами.

  • Сборки загружаются в память, только если они необходимы. Если они не используются, они не загружаются. Это означает, что сборки могут быть эффективным способом управления ресурсами в более крупных проектах.

  • Вы можете программно получить информацию о сборке с помощью отражения. Дополнительные сведения см. В разделах «Отражение» (C #) или «Отражение (Visual Basic)».

  • Вы можете загрузить сборку только для ее проверки с помощью класса MetadataLoadContext в.NET Core и методы Assembly.ReflectionOnlyLoad или Assembly.ReflectionOnlyLoadFrom в .NET Core и .NET Framework.

Сборки в среде CLR

Сборки предоставляют общеязыковой среде выполнения необходимую информацию о реализациях типов. Для среды выполнения тип не существует вне контекста сборки.

Сборка определяет следующую информацию:

  • Код, выполняемый средой CLR.Обратите внимание, что каждая сборка может иметь только одну точку входа: DllMain , WinMain или Main .

  • Граница безопасности. Сборка - это единица измерения, в которой запрашиваются и предоставляются разрешения. Дополнительные сведения о границах безопасности в сборках см. В разделе Вопросы безопасности сборки.

  • Граница типа. Идентификатор каждого типа включает имя сборки, в которой он находится. Тип с именем MyType , который загружается в область действия одной сборки, отличается от типа с именем MyType , который загружается в область действия другой сборки.

  • Граница области отсчета. В манифесте сборки есть метаданные, которые используются для определения типов и удовлетворения запросов ресурсов. В манифесте указываются типы и ресурсы, которые необходимо предоставить за пределами сборки, а также перечисляются другие сборки, от которых он зависит. Код промежуточного языка Microsoft (MSIL) в переносимом исполняемом (PE) файле не будет выполняться, если с ним не связан манифест сборки.

  • Граница версии. Сборка является наименьшей версией единицы в среде CLR.Все типы и ресурсы в одной сборке имеют версии как единое целое. В манифесте сборки описаны зависимости версий, которые вы указываете для любых зависимых сборок. Дополнительные сведения об управлении версиями см. В разделе Управление версиями сборки.

  • Блок развертывания. Когда приложение запускается, должны присутствовать только сборки, которые оно изначально вызывает. Другие сборки, такие как сборки, содержащие ресурсы локализации или служебные классы, могут быть получены по запросу. Это позволяет приложениям быть простыми и тонкими при первой загрузке.Дополнительные сведения о развертывании сборок см. В разделе Развертывание приложений.

  • Блок параллельного исполнения. Дополнительные сведения о запуске нескольких версий сборки см. В разделе Сборки и параллельное выполнение.

Создать сборку

Сборки могут быть статическими или динамическими. Статические сборки хранятся на диске в переносимых исполняемых (PE) файлах. Статические сборки могут включать интерфейсы, классы и ресурсы, такие как растровые изображения, файлы JPEG и другие файлы ресурсов.Вы также можете создавать динамические сборки, которые запускаются непосредственно из памяти и не сохраняются на диск перед выполнением. Вы можете сохранять динамические сборки на диск после их выполнения.

Есть несколько способов создания сборок. Вы можете использовать инструменты разработки, такие как Visual Studio, которые могут создавать файлы .dll, или .exe, . Вы можете использовать инструменты в Windows SDK для создания сборок с модулями из других сред разработки. Вы также можете использовать общеязыковые API среды выполнения, такие как System.Reflection.Emit для создания динамических сборок.

Компилируйте сборки, создавая их в Visual Studio, создавая их с помощью инструментов интерфейса командной строки .NET Core или создавая сборки .NET Framework с помощью компилятора командной строки. Дополнительные сведения о создании сборок с помощью .NET Core CLI см. В разделе Обзор .NET Core CLI. Для создания сборок с помощью компиляторов командной строки см. Сборка из командной строки с помощью csc.exe для C # или Сборка из командной строки для Visual Basic.

Примечание

Чтобы построить сборку в Visual Studio, в меню Build выберите Build .

Манифест сборки

Каждая сборка имеет файл манифеста сборки . Как и в таблице содержания, манифест сборки содержит:

  • Идентификатор сборки (название и версия).

  • Таблица файлов, описывающая все остальные файлы, составляющие сборку, например, другие сборки, которые вы создали, на которые опирается ваш файл .exe или .dll , файлы растровых изображений или файлы Readme.

  • Справочный список сборки , который представляет собой список всех внешних зависимостей, например .dll s или другие файлы. Ссылки на сборки содержат ссылки как на глобальные, так и на частные объекты. Глобальные объекты доступны для всех других приложений. В .NET Core глобальные объекты связаны с определенной средой выполнения .NET Core. В .NET Framework глобальные объекты находятся в глобальном кэше сборок (GAC). System.IO.dll - это пример сборки в GAC. Частные объекты должны находиться на уровне каталога на уровне или ниже каталога, в котором установлено ваше приложение.

Поскольку сборки содержат информацию о содержимом, версиях и зависимостях, приложениям, которые их используют, не нужно полагаться на внешние источники, такие как реестр в системах Windows, для правильной работы.Сборки уменьшают количество конфликтов .dll и и делают ваши приложения более надежными и простыми в развертывании. Во многих случаях вы можете установить приложение на основе .NET, просто скопировав его файлы на целевой компьютер. Дополнительные сведения см. В разделе манифест сборки.

Добавить ссылку на сборку

Чтобы использовать сборку в приложении, вы должны добавить на нее ссылку. После ссылки на сборку все доступные типы, свойства, методы и другие члены ее пространств имен становятся доступными вашему приложению, как если бы их код был частью вашего исходного файла.

Примечание

На большинство сборок из библиотеки классов .NET ссылаются автоматически. Если на системную сборку не ссылаются автоматически, для .NET Core вы можете добавить ссылку на пакет NuGet, который содержит сборку. Либо используйте диспетчер пакетов NuGet в Visual Studio, либо добавьте элемент для сборки в проект .csproj или .vbproj . В .NET Framework вы можете добавить ссылку на сборку с помощью диалогового окна Добавить ссылку в Visual Studio или с помощью параметра командной строки -reference для компиляторов C # или Visual Basic.

В C # вы можете использовать две версии одной и той же сборки в одном приложении. Для получения дополнительной информации см. Extern псевдоним.

Связанное содержание

Номер ссылки

Система.Отражение.Сборка

См. Также

.

% PDF-1.2 % 1816 0 объект > endobj xref 1816 34 0000000016 00000 н. 0000001035 00000 н. 0000002250 00000 н. 0000002628 00000 н. 0000002651 00000 п. 0000002951 00000 н. 0000004079 00000 п. 0000004495 00000 н. 0000004518 00000 н. 0000005333 00000 п. 0000005356 00000 п. 0000005485 00000 н. 0000006171 00000 п. 0000006194 00000 н. 0000007256 00000 н. 0000007280 00000 н. 0000008751 00000 п. 0000008774 00000 н. 0000008898 00000 н. 0000010017 00000 п. 0000010306 00000 п. 0000010586 00000 п. 0000010610 00000 п. 0000013594 00000 п. 0000013618 00000 п. 0000015615 00000 п. 0000015638 00000 п. 0000016514 00000 п. 0000016536 00000 п. 0000016859 00000 п. 0000016882 00000 п. 0000017367 00000 п. 0000001094 00000 н. 0000002226 00000 н. трейлер ] >> startxref 0 %% EOF 1817 0 объект > endobj 1848 0 объект > поток HSOenn0kc8zHa n-, pTDnȮl0h, clL4XtK6mA'-I и bQ

.

Создание и использование сборок со строгими именами

  • 3 минуты на чтение

В этой статье

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

Предупреждение

Не полагайтесь на строгие имена для обеспечения безопасности. Они обеспечивают только уникальную индивидуальность.

Сборка со строгим именем может использовать только типы из других сборок со строгим именем. В противном случае целостность сборки со строгим именем будет нарушена.

Примечание

Хотя .NET Core поддерживает сборки со строгими именами, и все сборки в.NET Core подписаны, большинство сторонних сборок не нуждаются в строгих именах. Дополнительные сведения см. В разделе Подписание строгого имени на GitHub.

Сценарий строгого имени

В следующем сценарии описывается процесс подписания сборки строгим именем и последующего обращения к ней по этому имени.

  1. Сборка A создается со строгим именем одним из следующих способов:

    • Использование среды разработки, поддерживающей создание строгих имен, например Visual Studio.

    • Создание пары криптографических ключей с помощью инструмента строгого имени (Sn.exe) и назначение этой пары ключей сборке с помощью компилятора командной строки или компоновщика сборок (Al.exe). В Windows SDK есть как Sn.exe, так и Al.exe.

  2. Среда разработки или инструмент подписывает хэш файла, содержащего манифест сборки, закрытым ключом разработчика. Эта цифровая подпись хранится в переносном исполняемом (PE) файле, который содержит манифест сборки A.

  3. Сборка B является потребителем сборки A. Раздел ссылок манифеста сборки B включает токен, который представляет открытый ключ сборки A. Маркер является частью полного открытого ключа и используется, а не сам ключ для экономии места.

  4. Среда CLR проверяет подпись строгого имени, когда сборка помещается в глобальный кэш сборок. При привязке по строгому имени во время выполнения среда CLR сравнивает ключ, хранящийся в манифесте сборки B, с ключом, используемым для создания строгого имени для сборки A.Если проверки безопасности .NET пройдены и привязка прошла успешно, сборка B имеет гарантию, что биты сборки A не были подделаны и что эти биты на самом деле получены от разработчиков сборки A.

Примечание

Этот сценарий не решает проблемы доверия. Сборки могут содержать полные подписи Microsoft Authenticode в дополнение к строгому имени. Подписи Authenticode включают сертификат, который устанавливает доверие. Важно отметить, что строгие имена не требуют такой подписи кода.Сильные имена обеспечивают только уникальную идентичность.

Обход проверки подписи доверенных сборок

Начиная с .NET Framework 3.5 с пакетом обновления 1, подписи строгих имен не проверяются, когда сборка загружается в домен приложения с полным доверием, такой как домен приложения по умолчанию для зоны MyComputer . Это называется функцией обхода строгого имени. В среде с полным доверием требования StrongNameIdentityPermission всегда выполняются для подписанных сборок с полным доверием, независимо от их подписи.Функция обхода строгого имени позволяет избежать ненужных накладных расходов на проверку подписи строгого имени для сборок с полным доверием в этой ситуации, позволяя сборкам загружаться быстрее.

Функция обхода применяется к любой сборке, подписанной строгим именем и имеющей следующие характеристики:

  • Полностью доверенный без свидетельства StrongName (например, имеет свидетельство зоны MyComputer ).

  • Загружен в полностью доверенный домен приложений.

  • Загружается из расположения под свойством ApplicationBase этого AppDomain.

  • Без задержки с подписью.

Эту функцию можно отключить для отдельных приложений или для компьютера. См. Как: отключить функцию обхода строгих имен.

.

Как: установить сборку в глобальный кеш сборок

  • 2 минуты на чтение

В этой статье

В глобальном кэше сборок (GAC) хранятся сборки, общие для нескольких приложений. Установите сборку в глобальный кэш сборок с одним из следующих компонентов:

Установщик Windows

Установщик Windows

, механизм установки Windows, является рекомендуемым способом добавления сборок в глобальный кэш сборок.Установщик Windows обеспечивает подсчет ссылок на сборки в глобальном кэше сборок и другие преимущества. Чтобы создать пакет установщика для установщика Windows, используйте расширение набора инструментов WiX для Visual Studio 2017.

Вы можете использовать служебную программу .NET Global Assembly Cache (gacutil.exe) для добавления сборок в глобальный кэш сборок и для просмотра содержимого глобального кэша сборок.

Примечание

Gacutil.exe предназначен только для разработки. Не используйте его для установки производственных сборок в глобальный кеш сборок.

Синтаксис использования gacutil.exe для установки сборки в GAC следующий:

  gacutil -i <имя сборки>  

В этой команде <имя сборки> - это имя сборки для установки в глобальный кэш сборок.

Если gacutil.exe отсутствует в системном пути, используйте командную строку разработчика для VS <версия> .

В следующем примере устанавливается сборка с именем файла hello.dll в глобальный кеш сборок.

  gacutil -i hello.dll  

Примечание

В более ранних версиях .NET Framework расширение оболочки Shfusion.dll Windows позволяло устанавливать сборки, перетаскивая их в проводник. Начиная с .NET Framework 4, Shfusion.dll является устаревшим.

См. Также

.

Как среда выполнения обнаруживает сборки

  • 14 минут на чтение

В этой статье

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

Среда CLR выполняет ряд шагов при попытке найти сборку и разрешить ссылку на сборку. Каждый шаг описан в следующих разделах. Термин «зондирование» часто используется при описании того, как среда выполнения находит сборки; он относится к набору эвристик, используемых для поиска сборки на основе ее имени и языка и региональных параметров.

Начало привязки

Процесс поиска и привязки к сборке начинается, когда среда выполнения пытается разрешить ссылку на другую сборку.Эта ссылка может быть статической или динамической. Компилятор записывает статические ссылки в метаданные манифеста сборки во время сборки. Динамические ссылки создаются на лету в результате вызова различных методов, таких как Assembly.Load.

Предпочтительный способ ссылки на сборку - использовать полную ссылку, включая имя сборки, версию, региональные параметры и токен открытого ключа (если он существует). Среда выполнения использует эту информацию для поиска сборки, следуя шагам, описанным далее в этом разделе.Среда выполнения использует один и тот же процесс разрешения независимо от того, относится ли ссылка к статической или динамической сборке.

Вы также можете создать динамическую ссылку на сборку, предоставив вызывающему методу только частичную информацию о сборке, например указав только имя сборки. В этом случае выполняется поиск сборки только в каталоге приложения, и никакой другой проверки не происходит. Вы делаете частичную ссылку, используя любой из различных методов загрузки сборок, например Assembly.Загрузить или AppDomain.Load.

Наконец, вы можете создать динамическую ссылку, используя такой метод, как Assembly.Load, и предоставить только частичную информацию; затем вы уточняете ссылку, используя элемент в файле конфигурации приложения. Этот элемент позволяет вам предоставить полную справочную информацию (имя, версия, язык и региональные параметры и, если применимо, токен открытого ключа) в файле конфигурации вашего приложения, а не в вашем коде. Вы могли бы использовать этот метод, если хотите полностью определить ссылку на сборку вне каталога приложения или если вы хотите сослаться на сборку в глобальном кэше сборок, но вам нужно удобство указания полной ссылки в файле конфигурации вместо в вашем коде.

Примечание

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

Среда выполнения использует следующие шаги для разрешения ссылки на сборку:

  1. Определяет правильную версию сборки, проверяя применимые файлы конфигурации, включая файл конфигурации приложения, файл политики издателя и файл конфигурации компьютера.Если файл конфигурации находится на удаленном компьютере, среда выполнения должна сначала найти и загрузить файл конфигурации приложения.

  2. Проверяет, привязано ли имя сборки к ранее, и, если да, использует ранее загруженную сборку. Если предыдущий запрос на загрузку сборки завершился неудачно, запрос сразу же не выполняется без попытки загрузить сборку.

    Примечание

    Кэширование сбоев привязки сборок является новым в .NET Framework версии 2.0.

  3. Проверяет глобальный кеш сборок. Если сборка найдена там, среда выполнения использует эту сборку.

  4. Зонды для сборки, выполнив следующие шаги:

    1. Если конфигурация и политика издателя не влияют на исходную ссылку и если запрос привязки был создан с использованием метода Assembly.LoadFrom, среда выполнения проверяет подсказки о расположении.

    2. Если кодовая база найдена в файлах конфигурации, среда выполнения проверяет только это местоположение.Если этот зонд завершается неудачно, среда выполнения определяет, что запрос привязки не удался, и никакое другое зондирование не происходит.

    3. Зонды для сборки с использованием эвристики, описанной в разделе зондирования. Если после проверки сборка не найдена, среда выполнения запрашивает у установщика Windows сборку. Это действует как функция установки по запросу.

      Примечание

      Отсутствует проверка версий для сборок без строгих имен, а также проверка во время выполнения в глобальном кэше сборок для сборок без строгих имен.

Шаг 1. Изучение файлов конфигурации

Поведение привязки сборки можно настроить на разных уровнях на основе трех файлов XML:

Эти файлы имеют одинаковый синтаксис и предоставляют такую ​​информацию, как перенаправления привязки, расположение кода и режимы привязки для определенных сборок. Каждый файл конфигурации может содержать элемент , который перенаправляет процесс привязки. Дочерние элементы элемента включают элемент .Дочерние элементы элемента включают элемент , элемент и элемент .

Примечание

Информацию о конфигурации можно найти в трех файлах конфигурации; не все элементы допустимы во всех файлах конфигурации. Например, информация о режиме привязки и личном пути может быть только в файле конфигурации приложения. Полный список информации, содержащейся в каждом файле, см. В разделе Настройка приложений с помощью файлов конфигурации.

Файл конфигурации приложения

Во-первых, среда CLR проверяет файл конфигурации приложения на наличие информации, которая переопределяет информацию о версии, хранящуюся в манифесте вызывающей сборки. Файл конфигурации приложения можно развернуть вместе с приложением, но он не требуется для выполнения приложения. Обычно получение этого файла происходит почти мгновенно, но в ситуациях, когда база приложения находится на удаленном компьютере, например, в сценарии на основе Интернета в Internet Explorer, файл конфигурации необходимо загрузить.

Для клиентских исполняемых файлов файл конфигурации приложения находится в том же каталоге, что и исполняемый файл приложения, и имеет то же базовое имя, что и исполняемый файл с расширением .config. Например, файл конфигурации для C: \ Program Files \ Myapp \ Myapp.exe - это C: \ Program Files \ Myapp \ Myapp.exe.config. В сценарии на основе браузера HTML-файл должен использовать элемент , чтобы явно указывать на файл конфигурации.

Следующий код представляет собой простой пример файла конфигурации приложения.В этом примере в коллекцию Listeners добавляется TextWriterTraceListener, чтобы включить запись отладочной информации в файл.

  <конфигурация>   <слушатели>       

Файл политики издателя

Во-вторых, среда выполнения проверяет файл политики издателя, если он существует. Файлы политики издателя распространяются издателем компонента как исправление или обновление общего компонента. Эти файлы содержат информацию о совместимости, выпущенную издателем общего компонента, который направляет ссылку на сборку на новую версию. В отличие от файлов конфигурации приложения и компьютера, файлы политики издателя содержатся в собственной сборке, которую необходимо установить в глобальном кэше сборок.

Ниже приведен пример файла конфигурации политики издателя:

  <конфигурация> <время выполнения>  <зависимая сборка>        

Для создания сборки можно использовать файл Al.exe (компоновщик сборок) с помощью следующей команды:

  Al.exe /link:asm6.exe.config /out:policy.3.0.asm6.dll / keyfile: compatkey.dat /v:3.0.0.0  

compatkey.dat - это ключевой файл со строгим именем. Эта команда создает сборку со строгим именем, которую можно поместить в глобальный кеш сборок.

Примечание

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

Файл конфигурации политики издателя переопределяет информацию о версии, которая поступает из приложения (то есть из манифеста сборки или из файла конфигурации приложения).Если в файле конфигурации приложения нет инструкции для перенаправления версии, указанной в манифесте сборки, файл политики издателя переопределяет версию, указанную в манифесте сборки. Однако, если в файле конфигурации приложения есть оператор перенаправления, политика издателя переопределяет эту версию, а не ту, которая указана в манифесте.

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

Безопасный режим
Файлы политики

Publisher обычно явно устанавливаются как часть пакета обновления или обновления программы. Если есть какие-либо проблемы с обновленным общим компонентом, вы можете игнорировать переопределения в файле политики издателя в безопасном режиме. Безопасный режим определяется элементом , который находится только в файле конфигурации приложения.Он указывает, следует ли удалять информацию о конфигурации политики издателя из процесса привязки.

Безопасный режим можно установить для всего приложения или для выбранных сборок. То есть вы можете отключить политику для всех сборок, составляющих приложение, или включить ее для некоторых сборок, но не для других. Чтобы выборочно применять политику издателя к сборкам, составляющим приложение, установите и укажите, какие сборки вы хотите затронуть, используя элемент <hibitedAssembly >.Чтобы применить политику издателя ко всем сборкам, составляющим приложение, установите без зависимых элементов сборки. Дополнительные сведения о конфигурации см. В разделе Настройка приложений с помощью файлов конфигурации.

Файл конфигурации машины

В-третьих, среда выполнения проверяет файл конфигурации машины. Этот файл с именем Machine.config находится на локальном компьютере в подкаталоге Config корневого каталога, в котором установлена ​​среда выполнения.Этот файл может использоваться администраторами для указания ограничений привязки сборки, локальных для этого компьютера. Параметры в файле конфигурации машины имеют приоритет над всеми другими параметрами конфигурации; однако это не означает, что все параметры конфигурации должны быть помещены в этот файл. Версия, определенная файлом политики администратора, является окончательной и не может быть изменена. Переопределения, указанные в файле Machine.config, влияют на все приложения. Дополнительные сведения о файлах конфигурации см. В разделе Настройка приложений с помощью файлов конфигурации.

Шаг 2: Проверка ранее упомянутых сборок

Если запрошенная сборка также была запрошена в предыдущих вызовах, среда CLR использует уже загруженную сборку. Это может иметь разветвления при именовании сборок, составляющих приложение. Дополнительные сведения об именах сборок см. В разделе Имена сборок.

Если предыдущий запрос сборки завершился неудачно, последующие запросы сборки немедленно завершаются ошибкой без попытки загрузить сборку.Начиная с .NET Framework версии 2.0, сбои привязки сборки кэшируются, и кэшированная информация используется для определения того, следует ли пытаться загрузить сборку.

Шаг 3. Проверка глобального кэша сборок

Для сборок со строгими именами процесс привязки продолжается поиском в глобальном кэше сборок. В глобальном кэше сборок хранятся сборки, которые могут использоваться несколькими приложениями на компьютере. Все сборки в глобальном кэше сборок должны иметь строгие имена.

Шаг 4. Поиск сборки с помощью кодовых баз или зондирования

После того, как правильная версия сборки была определена с использованием информации в ссылке на вызывающую сборку и в файлах конфигурации, а также после ее проверки в глобальном кэше сборок (только для сборок со строгими именами) среда CLR пытается найти Ассамблея. Процесс поиска сборки включает в себя следующие шаги:

  1. Если в файле конфигурации приложения обнаружен элемент , среда выполнения проверяет указанное расположение.Если совпадение найдено, используется эта сборка, и зондирования не происходит. Если сборка там не найдена, запрос привязки не выполняется.

  2. Затем среда выполнения проверяет сборку, на которую указывает ссылка, используя правила, указанные ниже в этом разделе.

Примечание

Если у вас есть несколько версий сборки в каталоге и вы хотите ссылаться на конкретную версию этой сборки, вы должны использовать элемент вместо атрибута privatePath элемента .Если вы используете элемент , среда выполнения прекращает проверку при первом обнаружении сборки, которая соответствует указанному простому имени сборки, независимо от того, является ли оно правильным или нет. Если совпадение правильное, используется эта сборка. Если совпадение не является правильным, зондирование прекращается и привязка не выполняется.

Поиск сборки с помощью кодовых баз

Информация о кодовой базе может быть предоставлена ​​с помощью элемента в файле конфигурации. Эта кодовая база всегда проверяется до того, как среда выполнения попытается проверить сборку, на которую указывает ссылка.Если файл политики издателя, содержащий перенаправление окончательной версии, также содержит элемент , то используется именно этот элемент . Например, если в файле конфигурации вашего приложения указан элемент , а в файле политики издателя, который переопределяет информацию о приложении, также указан элемент , используется элемент в файле политики издателя.

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

Примечание

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

Обнаружение сборки с помощью щупа

Если в файле конфигурации приложения нет элемента , среда выполнения проверяет сборку, используя четыре критерия:

  • База приложения, которая является корневым каталогом, в котором приложение выполняется.

  • Культура, которая является атрибутом языка и региональных параметров сборки, на которую имеется ссылка.

  • Имя, которое является именем указанной сборки.

  • Атрибут privatePath элемента , который представляет собой определенный пользователем список подкаталогов в корневом расположении. Это расположение можно указать в файле конфигурации приложения и в управляемом коде с помощью свойства AppDomainSetup.PrivateBinPath для домена приложения. Если указано в управляемом коде, сначала проверяется управляемый код privatePath , а затем путь, указанный в файле конфигурации приложения.

Проверка справочников базы приложений и культуры

Среда выполнения всегда начинает поиск с базы приложения, которая может быть либо URL-адресом, либо корневым каталогом приложения на компьютере. Если сборка, на которую указывает ссылка, не найдена в базе приложения и не предоставлена ​​информация о культуре, среда выполнения выполняет поиск во всех подкаталогах с именем сборки. В число исследованных каталогов входят:

Если информация о культуре указана для сборки, на которую указывает ссылка, проверяются только следующие каталоги:

Зондирование с атрибутом privatePath

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

Среда выполнения прекращает зондирование при первом обнаружении сборки, которая соответствует указанному простому имени сборки, независимо от того, является ли оно правильным или нет. Если совпадение правильное, используется эта сборка. Если совпадение не является правильным, зондирование прекращается и привязка не выполняется.

Если указан язык и региональные параметры, проверяются следующие каталоги:

Если информация о культуре не включена, проверяются следующие каталоги:

Примеры зондирования

Приведена следующая информация:

  • Ссылочное имя сборки: myAssembly

  • Корневой каталог приложения: http://www.code.microsoft.com

  • Элемент в файле конфигурации указывает: bin

  • Культура: de

Среда выполнения проверяет следующие URL-адреса:

  • http: // www.code.microsoft.com/de/myAssembly.dll

  • http://www.code.microsoft.com/de/myAssembly/myAssembly.dll

  • http://www.code.microsoft.com/bin/de/myAssembly.dll

  • http://www.code.microsoft.com/bin/de/myAssembly/myAssembly.dll

Несколько сборок с одинаковым именем

В следующем примере показано, как настроить несколько сборок с одинаковым именем.

  <зависимая сборка>      
Исследования в других местах

Местоположение сборки также можно определить с помощью текущего контекста привязки. Чаще всего это происходит при использовании метода Assembly.LoadFrom и в сценариях взаимодействия с COM.Если сборка использует метод LoadFrom для ссылки на другую сборку, расположение вызывающей сборки считается подсказкой о том, где найти сборку, на которую указывает ссылка. Если совпадение найдено, эта сборка загружается. Если совпадений не найдено, среда выполнения продолжает свою семантику поиска, а затем запрашивает у установщика Windows сборку. Если не предоставлена ​​сборка, соответствующая запросу привязки, создается исключение. Это исключение представляет собой исключение TypeLoadException в управляемом коде, если на тип была ссылка, или исключение FileNotFoundException, если загружаемая сборка не найдена.

Например, если Assembly1 ссылается на Assembly2, а Assembly1 была загружена с http://www.code.microsoft.com/utils , это расположение считается подсказкой о том, где найти Assembly2.dll. Затем среда выполнения исследует сборку в http://www.code.microsoft.com/utils/Assembly2.dll и http://www.code.microsoft.com/utils/Assembly2/Assembly2.dll . Если Assembly2 не найдена ни в одном из этих расположений, среда выполнения запрашивает установщик Windows.

См. Также

.

Смотрите также