Открытие исходных файлов в Visual Studio Code
Эксперимент с открытым исходным кодом в Visual Studio Code позволяет использовать Средства разработки Microsoft Edge, а затем редактировать файлы в Visual Studio Code, а не в редакторе кода средства DevTools Sources.
При использовании этого эксперимента, если вы используете Visual Studio Code и используете Средства разработки для изменения правил CSS, вам больше не придется использовать редактор кода в инструменте Источники devTools. Редактор кода можно просто использовать в Visual Studio Code. При включении этого эксперимента локальные файлы будут получать другую обработку.
Настройка редактирования локальных файлов в Visual Studio Code
Сначала выберите Параметры средств разработки>>Эксперименты>Открытые исходные файлы в Visual Studio Code, а затем снова запустите Средства разработки.
Если этот эксперимент включен, предположим, что в Microsoft Edge вы переходите на локальный сервер (например http://localhost , или http://127.0.0.1 ) или открываете локальный файл.
При открытии средств разработки вам будет предложено определить корневую папку. Вы можете отказаться, нажав кнопку Закрыть ( x ) или нажав кнопку Don’t show again . Дополнительные сведения можно получить, щелкнув ссылку Learn more .

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

После выбора корневой папки необходимо предоставить devTools полный доступ к ней. Над панелью инструментов появится запрос с кнопками «Разрешить » или «Запретить » с запросом на предоставление разрешения на доступ к папке средствам разработки.

После предоставления разрешения выбранная папка будет добавлена в качестве рабочей области в средствах разработки на вкладке Файловая система средства Источники . Это означает, что любой файл, который вы редактируете в средствах разработки, теперь открывается в Microsoft Visual Studio Code, а не в средстве Источники. В качестве индикатора мы показываем linked значок рядом с именем файла. В этом примере мы выберем ссылку base.css в средстве Стили .

DevTools открывает экземпляр Visual Studio Code и отображает все файлы в корневой папке. DevTools также открывает выбранный файл, прокручиваемый до правильной строки селектора CSS.

Все изменения, внесенные в файл в средствах разработки, теперь будут синхронизированы с Visual Studio Code. Например, если добавить background: green правило в стили текста, то одно и то же правило CSS будет автоматически добавлено base.css в файл в редакторе кода Visual Studio Code.

Изменение параметров рабочей области
Чтобы изменить поведение файлов с открытым исходным кодом в эксперименте Visual Studio Code, перейдите на страницу Параметры средств разработки, щелкнув Параметры (значок шестеренки) или нажав клавиши SHIFT+?, а затем выберите страницу Рабочая область:

На странице Параметры>рабочей области перечислены рабочие области, а также следующие параметры конфигурации:
| Элемент управления пользовательского интерфейса | Описание |
|---|---|
| Флажок «Открыть исходные файлы в Visual Studio Code« | Задает, следует ли открытый код файлы в Visual Studio Code. |
| Сохранить изменения в средствах разработки на диске | Автоматически сохраняет изменения DevTools на диске. |
| Текстовое поле «Исключить шаблон папки « | Автоматически исключает папки из папки рабочей области. |
| Кнопка «Добавить» рядом с пунктом Исключенные папки | Исключает папку из определенной рабочей области. |
| Кнопка «Добавить папку« | Добавляет дополнительную рабочую область. |
VS Code Кодирование текста
В один момент решил открыть свой проект сайта, но перестал читаться файл css. Когда я попытался открыть данный файл мне высветлилась вот такая проблема:
the file is not displayed in the editor because it is either binary or uses an unsupported text encoding (файл не отображается в редакторе, потому что он либо двоичный, либо использует неподдерживаемую кодировку текста).
в чем проблема, как решить?
Возможно ли решить, или нужно создавать новый css файл?
в вопросах программирования я новичек, впервые столкнулся с таким вопросом.
Jekintos
29.09.22 21:24:17 MSK
- Ответить на это сообщение
- Ссылка

Попробуйте открыть стандартный редактором вашей операционной системы, если не получится, значит файл повреждён и надо восстанавливать его из бэкапа (вы ведь используете контроль версий?).
mydibyje ★★★
( 29.09.22 21:37:25 MSK )
Последнее исправление: mydibyje 29.09.22 21:43:24 MSK (всего исправлений: 1)
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от mydibyje 29.09.22 21:37:25 MSK
А контроль версии это что? Автосохранение?
Jekintos
( 30.09.22 16:25:27 MSK ) автор топика
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от mydibyje 29.09.22 21:37:25 MSK
Я пробовал открыть блокнотом, но никакой информации на экране не появилось пустой лист
Jekintos
( 30.09.22 16:27:27 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Ответ на: комментарий от Jekintos 30.09.22 16:25:27 MSK

peregrine ★★★★★
( 30.09.22 18:36:00 MSK )
- Ответить на это сообщение
- Ссылка

пример файла бы сюда и хорошо бы его hex редактором посмотреть. Есть шанс что это вовсе не css
peregrine ★★★★★
( 30.09.22 18:37:56 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от peregrine 30.09.22 18:37:56 MSK
Jekintos
( 01.10.22 13:38:19 MSK ) автор топика
- Ответить на это сообщение
- Ссылка

Это не css, это повреждённый файл, состоящий целиком и полностью из 0 без единичек.
peregrine ★★★★★
( 01.10.22 17:03:46 MSK )
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от peregrine 01.10.22 17:03:46 MSK
Это css файл, и в общем, я так понимаю, что ему камбец, и его никак не востановить, я правильно понял?
Jekintos
( 01.10.22 18:55:21 MSK ) автор топика
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от peregrine 01.10.22 17:03:46 MSK
если это не css файл, то какой это файл?
Jekintos
( 01.10.22 18:56:56 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Основные сведения о кодировке файлов в VS Code и PowerShell
При использовании VS Code для создания и редактирования скриптов PowerShell важно сохранить файлы с помощью правильного формата кодировки символов.
Что такое кодировка и почему она важна?
VS Code управляет интерфейсом ввода строки символов в буфер пользователем и чтения-записи блоков байтов в файловой системе. При сохранении файла в VS Code используется кодирование текста для определения того, какие байты получит каждый символ. Подробные сведения см. в статье О шифровании символов.
Аналогичным образом, когда оболочка PowerShell запускает скрипт, ей необходимо преобразовать байты из файла в символы для преобразования файла в программу PowerShell. Так как VS Code записывает файл, а PowerShell считывает файл, этим средствам необходимо использовать одну и ту же систему кодировки. Этот процесс синтаксического анализа скрипта PowerShell идет так: байты ->символы ->лексемы -> дерево абстрактного синтаксиса ->выполнение.
И VS Code, и PowerShell устанавливаются с подходящей конфигурацией кодировки по умолчанию. Тем не менее кодировка по умолчанию, используемая PowerShell, была изменена с выпуском PowerShell 6. Чтобы избежать проблем с PowerShell и расширениями PowerShell в VS Code, необходимо настроить параметры VS Code и PowerShell должным образом.
Распространенные причины проблемы с кодировкой
Проблемы с кодировкой возникают, когда кодировка VS Code или файл скрипта не соответствует ожидаемой кодировке PowerShell. В PowerShell нет способа автоматически определить кодировку файла.
Проблемы с кодировкой более вероятны при использовании символов не из 7-разрядной кодировки ASCII. Пример:
- Расширенные небуквенные символы, такие как длинное тире ( — ), неразрывный пробел ( ) или левая двойная кавычка ( » ).
- Латинские символы с диакритикой ( É , ü )
- Нелатинские символы, такие как кириллица ( Д , Ц )
- Символы иероглифического письма ( 本 , 화 , が ).
Распространенные причины проблем с кодировкой:
- Кодировки VS Code и PowerShell не были изменены по умолчанию. В версиях до PowerShell 5.1 (включительно) кодировка по умолчанию отличается от используемой в VS Code.
- Открыт другой редактор, и файл перезаписан в новой кодировке. Это часто происходит с интегрированной средой сценариев.
- Файл проверяется в системе управления версиями в кодировке, отличной от ожидаемого VS Code или PowerShell. Это может произойти, когда участники совместной работы используют редакторы с различными конфигурациями кодировок.
Как определить наличие проблемы с кодировкой
Часто ошибки кодирования в скриптах представляются как ошибки синтаксического анализа. Если вы видите странные последовательности символов в скрипте, это может быть проблемой. В примере ниже тире ( – ) отображается в виде символов ※ :
Send-MailMessage : A positional parameter cannot be found that accepts argument 'Testing FuseMail SMTP. '. At C:\Users\\\Development\PowerShell\Scripts\Send-EmailUsingSmtpRelay.ps1:6 char:1 + Send-MailMessage â€"From $from â€"To $recipient1 â€"Subject $subject . + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Send-MailMessage], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SendMailMessage
Эта проблема возникает, так как VS Code кодирует символ – в UTF-8 как байты 0xE2 0x80 0x93 . Когда эти байты декодируются как Windows-1252, они интерпретируются как символы ※ .
Некоторые странные последовательности символов, которые можно видеть:
- – вместо – (en-dash)
- — вместо — (em-dash)
- Ä2 вместо Ä .
- Â вместо (неразрывный пробел).
- é вместо é .
Этот удобный справочник перечисляет распространенные шаблоны, которые указывают на проблему между кодировками UTF-8 и Windows-1252.
Взаимодействие расширения PowerShell для VS Code с кодировками
Расширение PowerShell взаимодействует со скриптами несколькими способами:
- При изменении скриптов в VS Code содержимое отправляется из VS Code в расширение. Протокол языкового сервера требует, чтобы это содержимое передавалось в UTF-8. Поэтому расширение не может получить неправильное кодирование.
- При выполнении скриптов в интегрированной консоли они считываются оболочкой PowerShell непосредственно из файла. Если кодировка PowerShell отличается от кодировки VS Code, может произойти сбой.
- Когда скрипт, открытый в VS Code, ссылается на другой скрипт, который не открыт в VS Code, расширение возвращается к загрузке содержимого этого скрипта из файловой системы. Расширение PowerShell по умолчанию использует кодировку UTF-8, но при этом применяет обнаружение метки порядка байтов (BOM), чтобы выбрать правильную кодировку.
Проблема возникает при предположении кодировки, не использующей BOM (такой как UTF-8 без метки порядка байтов или Windows-1252). Расширение PowerShell по умолчанию использует UTF-8. Расширение не может изменить параметры кодирования VS Code. Дополнительные сведения см. в разделе Проблема № 824.
Выбор подходящей кодировки
Различные системы и приложения могут использовать различные кодировки:
- В .NET Standard, в Интернете и в среде Linux теперь в основном используется кодировка UTF-8.
- Во многих приложениях .NET Framework используется UTF-16. По историческим причинам ее иногда называют «Юникод»; сейчас этот термин относится к более широкому стандарту, охватывающему UTF-8 и UTF-16.
- В Windows многие приложения, которые были созданы еще до распространения Юникода, по-прежнему могут по умолчанию использовать Windows-1252.
Кодировки Юникода также используют понятие метки порядка следования байтов (BOM). BOM ставится в начале текста, чтобы декодер мог определить, какая кодировка используется в тексте. Для многобайтовых кодировок BOM также указывает порядок следования байтов кодировки. BOM представляются байтами, которые редко встречаются в тексте в Юникоде. Это позволяет сделать обоснованное предположение, что текст записан в Юникоде, если присутствует метка BOM.
BOM не являются обязательными; в мире Linux они не так популярны, поскольку во всех прочих местах используется надежное соглашение UTF-8. Большинство приложений Linux предполагают, что текстовый ввод кодируется в UTF-8. Хотя многие приложения Linux распознают и правильно обрабатывают BOM, число не выполняется, что приводит к артефактам в тексте, обрабатываемом этими приложениями.
Таким образом:
- Если вы работаете в основном с приложениями Windows и Windows PowerShell, следует предпочтительно использовать такие кодировки, как UTF-8 с BOM или UTF-16.
- Если вы работаете на разных платформах, следует отдавать предпочтение UTF-8 с BOM.
- Если вы работаете главным образом в контексте Linux, следует отдавать предпочтение UTF-8 без BOM.
- Windows-1252 и latin-1 — устаревшие кодировки, которых по возможности следует избегать. Тем не менее некоторые приложения предыдущих версий в Windows зависят от их.
- Также стоит отметить, что подписывание скриптов зависит от кодировки, то есть изменение кодировки в подписанном скрипте потребует повторного подписывания.
Настройка VS Code
Кодировка VS Code по умолчанию — UTF-8 без метки порядка байтов.
Чтобы задать кодировку VS Code, перейдите к параметрам VS Code ( CTRL + , ) и задайте параметр «files.encoding» :
"files.encoding": "utf8bom"
Возможны следующие значения:
- utf8 : [UTF-8] без метки порядка байтов
- utf8bom : [UTF-8] с меткой порядка байтов
- utf16le : [UTF-16] с прямым порядком байтов
- utf16be : [UTF-16] с обратным порядком байтов
- windows1252 : [Windows-1252]
Должен отобразиться раскрывающийся список представления графического пользовательского интерфейса или дополнение в представлении JSON.
Чтобы обеспечить автоматическое определение кодировки, если это возможно, можно также добавить следующее:
"files.autoGuessEncoding": true
Если вы не хотите, чтобы эти параметры влияли на все типы файлов, в VS Code можно задавать конфигурации для каждого языка отдельно. Создать параметр для конкретного языка можно, поместив параметры в поле [] . Пример:
"[powershell]":
Вы также можете установить средство отслеживания Gremlins для Visual Studio Code. Это расширение показывает определенные символы Юникода, которые легко повреждены, так как они невидимы или выглядят как другие обычные символы.
Настройка PowerShell
В PowerShell кодировка по умолчанию зависит от версии:
- В PowerShell 6+ кодировка по умолчанию на всех платформах — UTF-8 без метки порядка байтов.
- В Windows PowerShell кодировка по умолчанию — обычно Windows-1252, расширение latin-1, которое также называется ISO 8859-1.
В PowerShell 5 + можно определить кодировку по умолчанию так:
[psobject].Assembly.GetTypes() | Where-Object < $_.Name -eq 'ClrFacade'>| ForEach-Object
Следующий скрипт может использоваться для определения кодировки, которую ваш сеанс PowerShell выводит для скрипта, где нет метки порядка байтов.
$badBytes = [byte[]]@(0xC3, 0x80) $utf8Str = [System.Text.Encoding]::UTF8.GetString($badBytes) $bytes = [System.Text.Encoding]::ASCII.GetBytes('Write-Output "') + [byte[]]@(0xC3, 0x80) + [byte[]]@(0x22) $path = Join-Path ([System.IO.Path]::GetTempPath()) 'encodingtest.ps1' try < [System.IO.File]::WriteAllBytes($path, $bytes) switch (& $path) < $utf8Str < return 'UTF-8' break >default < return 'Windows-1252' break >> > finally
Можно настроить PowerShell так, чтобы использовать заданную кодировку в более общем виде с помощью параметров профиля. См. следующие статьи:
- Ответ @mklement0 о кодировке PowerShell на сайте StackOverflow.
- Запись блога @rkeithhill об обработке входных данных в UTF-8 без метки порядка байтов в PowerShell.
Заставить PowerShell использовать конкретную кодировку для входных данных невозможно. В PowerShell 5.1 и более ранних версий в Windows с языковым стандартом en-US по умолчанию используется кодировка Windows-1252, если отсутствует метка порядка байтов. Другие параметры языкового стандарта могут использовать другую кодировку. Для обеспечения совместимости лучше сохранять скрипты в Юникоде с меткой порядка байтов.
Любые другие имеющиеся у вас инструменты для работы со скриптами PowerShell могут зависеть от выбранных параметров кодировки или преобразовывать скрипты в другую кодировку.
Существующие скрипты
Скрипты, которые уже находятся в файловой системе, могут нуждаться в повторном кодировании в указанную вами кодировку. В нижней строке VS Code вы увидите метку UTF-8. Щелкните ее, чтобы открыть панель действий, и выберите команду Сохранить с кодировкой. Теперь вы можете выбрать новую кодировку для этого файла. Подробные инструкции см. в разделе Кодировка VS Code.
Если вам нужно повторно кодировать несколько файлов, можно использовать следующий скрипт:
Get-ChildItem *.ps1 -Recurse | ForEach-Object
Интегрированная среда сценариев (ISE) PowerShell
При редактировании скриптов с помощью интегрированной среды сценариев PowerShell необходимо синхронизировать здесь параметры кодировки.
Интегрированная среда сценариев должна учитывать метку порядка байтов, но можно также использовать отражение для задания кодировки. Обратите внимание, что это значение не сохраняется между запусками.
Система управления версиями
Некоторые системы управления версиями, например git, игнорируют кодировки; git отслеживает только байты. Поведение других, например Azure DevOps или Mercurial, может отличаться. Даже некоторые средства, основанные на git, полагаются на декодирование текста.
Если это так, убедитесь, что вы:
- Настроили кодировку в системе управления версиями в соответствии с вашей конфигурацией VS Code.
- Сделали так, что все файлы добавляются в систему управления версиями в соответствующей кодировке.
- Остерегайтесь изменять кодировки, полученные через систему управления версиями. Ключевым признаком здесь будет разностный файл, который указывает, что изменения отсутствуют (так как изменены байты, но не символы).
Среды других участников
Настроив систему управления версиями, убедитесь также, что параметры других участников, работающих над теми файлами, к которым вы предоставляете общий доступ, не переопределяют кодировку путем повторного кодирования файлов PowerShell.
Другие программы
Все другие программы, которые считывают или записывают скрипты PowerShell, могут перекодировать их.
- Использование буфера обмена для копирования и вставки скрипта. Это часто происходит в таких сценариях:
- Копирование скрипта в виртуальную машину.
- Копирование скрипта из электронной почты или с веб-страницы.
- Копирование скрипта через документ Microsoft Word или PowerPoint.
- Блокнот
- vim
- любой другой редактор скриптов PowerShell.
- Get-Content / Set-Content / Out-File
- Операторы перенаправления PowerShell, такие как > и >> .
- sed / awk
- Веб-браузер при скачивании скриптов.
- Общий файловый ресурс.
Некоторые из этих средств работают с байтами, а не с текстом, но другие позволяют настраивать кодировки. В случаях, когда необходимо настроить кодировку, используйте те же параметры, что и в вашем редакторе, чтобы предотвратить возникновение проблем.
Другие ресурсы о кодировках в PowerShell
Существует несколько других достойных публикаций на тему кодировок и настройки кодирования в PowerShell:
- О кодировке символов
- Обзор @mklement0 о кодировке PowerShell на сайте StackOverflow.
- Предыдущие проблемы, открытые в VS Code-PowerShell для проблем с кодировкой:
- #1308
- #1628
- #1680
- #1744
- #1751
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell is an open source project. Select a link to provide feedback:
Обратная связь
Отправить и просмотреть отзыв по
Окно Solution Explorer

Ранее вы кратко ознакомились с множеством компонентов, образующих среду интегрированной разработки Visual Studio 2013. Теперь вы получите возможность поработать с тремя наиболее широко используемыми инструментальными окнами — Solution Explorer, Toolbox и Properties.
Создавая или открывая приложение или просто отдельный файл, система Visual Studio 2013 использует концепцию решения (solution) для связывания всех компонентов в единое целое. Как правило, решение состоит из одного или нескольких проектов, каждый из которых, в свою очередь, содержит множество элементов, связанных с ним. В прошлом такими элементами были обычные файлы, но в настоящее время все чаще проекты создаются из элементов, которые образованы из нескольких файлов или вообще не включают в себя ни одного файла.
Инструментальное окно Solution Explorer ( Ctrl+Alt+L ) обеспечивает удобное визуальное представление решения, проектов и элементов, как показано на рисунке ниже. На этом рисунке представлены три проекта, образующих дерево: WPF-приложение на языке C#, служебная WCF-библиотека и библиотека классов.

С каждым проектом связана отдельная пиктограмма, которая, как правило, указывает тип проекта и язык, на котором он написан. У этого правила есть несколько исключений, например, проекты установки (setup projects) не имеют языка программирования, на котором они создаются.
Один из узлов обращает на себя особое внимание, поскольку он выделен полужирным шрифтом. Это значит, что этот проект является стартовым, иначе говоря, проектом, который запускается, когда вы выполняете команду Debug —> Start Debugging или нажимаете клавишу F5 . Для того чтобы сделать проект стартовым, щелкните на соответствующей пиктограмме правой кнопкой мыши и выполните команду Set as StartUp Project. Стартовыми можно сделать сразу несколько проектов. Для этого следует использовать диалоговое окно Solution Properties, которое открывается, когда вы щелкаете правой кнопкой мыши на узле Solution и выбираете пункт Properties.
Панель инструментов в верхней части окна Solution Explorer позволяет настроить внешний вид этого окна, а также задать комбинации клавиш для разного внешнего вида отдельных элементов. Например, кнопка Show All Files — открывает листинг решения и позволяет показать на экране дополнительные файлы и папки:

Вы видите, что узел Reference Library на самом деле состоит из нескольких файлов, содержащих настройки, ресурсы и информацию о сборке.
В этом развернутом представлении можно увидеть все файлы и папки, относящиеся к структуре проекта. К сожалению, при изменении файловой системы окно Solution Explorer не обновляется автоматически, чтобы отразить эти изменения. Для того чтобы обеспечить правильное представление списка файлов и папок, можно использовать кнопку Refresh.
Инструментальная панель Solution Explorer чувствительна к контексту, поэтому в зависимости от выбранного типа узла на ней отображаются разные кнопки.
Предпросмотр файлов
Одной из наиболее интересных особенностей Visual Studio 2013 является возможность предварительного просмотра файла в обозревателе решений. Для этого необходимо нажать кнопку «Preview Selected Items» и выбрать файл в окне Solution Explorer. На вкладке обзора появится файл и его содержимое:

Вы можете свободно перемещаться по файлу и редактировать его, как и любой другой файл. Тем не менее, при переходе к другому файлу в Solution Explorer, вкладка Preview заменяется новым файлом. Другими словами, режим предпросмотра служит для быстрого открытия и перемещения по файлам вашего проекта.
Типичные задачи
Кроме удобного способа управления проектами и элементами, окно Solution Explorer содержит динамическое контекстное меню, предоставляющее быстрое выполнение наиболее типичных задач, таких как сборка решений или отдельных проектов, обращение к менеджеру конфигурации сборки и открытие файлов. На рисунках ниже продемонстрировано, как изменяется контекстное меню в зависимости от того, какой элемент был выбран в окне Solution Explorer:



Если вы еще не включили в свой проект диаграмму классов, щелкните на кнопке View Class Diagram. После этого система автоматически добавит в ваш проект эту диаграмму и все классы. Если проект содержит много классов, то эта процедура может занять довольно много времени и в результате возникнет большая и неудобная диаграмма классов. Намного лучше добавлять диаграммы классов вручную, поскольку в таком случае пользователь сохраняет над ними полный контроль.
Первые пункты в левом и среднем меню связаны с созданием либо всего решения, либо выбранного проекта. В большинстве случаев эффективнее всего выполнить команду Build, поскольку она создает лишь те проекты, которые подверглись изменениям. Однако в некоторых случаях пользователю необходимо выполнить команду Rebuild, которая создает все взаимосвязанные проекты независимо от их состояния. Если вы хотите всего лишь удалить все дополнительные файлы, возникшие в процессе создания решения, то можете выполнить команду Clean. Эта команда может оказаться полезной, если вы хотите упаковать свое решение и послать его кому-нибудь в виде электронного письма и не хотите, чтобы при этом в него попали все временные файлы или файлы вывода, возникшие при создании решения.
Для большинства элементов в окне Solution Explorer первая команда контекстного меню похожа на команду, показанную на рисунке выше: по умолчанию команды Open и Open With. позволяют указать, как будет открыт конкретный элемент. Это особенно полезно при работе с ресурсными XML-файлами. Система Visual Studio 2013 открывает эти файлы, используя встроенный редактор ресурсов, но это не позволяет вам вносить определенные изменения и поддерживать все типы данных, которые вы хотели бы включить в проект (позже будет показано, как можно использовать свои собственные типы данных в файлах ресурсов). Используя команду Open With. можно вызвать редактор XML Editor.
Контекстные меню для узлов Solution, Project и Folder содержат команду Open Folder in Windows Explorer, что позволяет быстро открыть окно проводника Windows для поиска выбранного элемента и не искать в каталогах свое решение.
Добавление проектов и элементов
К основным действиям, выполняемым в окне Solution Explorer, относятся добавление, удаление и переименование проектов и элементов. Для того чтобы добавить новый проект в существующее решение, следует выполнить команду Add —> New Project в контекстном меню, связанном с узлом Solution. В этом случае откроется диалоговое окно, показанное на рисунке ниже, которое с небольшими изменениями унаследовано от предыдущей версии системы Visual Studio. Теперь шаблоны проектов можно сортировать и искать.

Панель, показанная на рисунке, справа, содержит информацию о выбранном проекте, например его тип и описание. В иерархии Installed, появляющейся в левой части диалогового окна Add New Project, шаблоны в первую очередь упорядочены по языкам, а затем по технологиям. Среди шаблонов прежде всего следует выделить типы Office, позволяющие создавать как приложение, так и надстройки для документов, как это принято в большинстве приложений подобного рода. Хотя надстройки Office по-прежнему используют набор инструментов Visual Studio Tools for Office (VSTO), теперь он встроен в систему Visual Studio и не требует отдельной инсталляции.
Предусмотрены также закладки Recent и Online. Шаблоны Online можно сортировать и искать точно так же, как Installed, хотя критерии сортировки для них являются более широкими и включают в себя дату создания, рейтинги и частоту загрузки.
Кроме того, следует выделить еще одну особенность этого диалогового окна — возможность выбирать разные версии платформы. Если вы работаете со старым проектом и не хотите переводить его в новую версию платформы .NET Framework, то все равно можете воспользоваться новыми возможностями, такими как улучшенная технология IntelliSense. В противном случае пришлось бы инсталлировать как систему Visual Studio 2013, так и предыдущую версию, чтобы создавать проекты для более старых версий платформы. Выбор платформы также включен в критерии сортировки, что ограничивает список доступных шаблонов проекта лишь теми шаблонами, которые совместимы с выбранной версией платформы .NET Framework.
При открытии существующих решений или проектов в системе Visual Studio 2013 они проходят все этапы работы с мастером обновлений (upgrade wizard), в ходе которых в файлы проектов и решений вносятся небольшие изменения. К сожалению эти небольшие изменения связаны с внедрением дополнительных свойств, которые разрушают существующий процесс сборки, если вы используете предыдущую версию системы сборки проектов MSBuild. По этой причине вы будете вынуждены перевести всю свою команду разработчиков на версию Visual Studio 2013.
Одной из наиболее неудачных и плохо понимаемых особенностей системы Visual Studio является концепция проекта Web Site. Этот проект отличается от проекта Web Application, который можно добавить с помощью диалогового окна Add —> New Project. Для того чтобы добавить проект Web Site, необходимо выполнить команду Add —> Web Site в контекстном меню, связанном с узлом Solution. Данная команда открывает диалоговое окно, похожее на то, которое показано на рисунке ниже. В этом окне можно выбрать тип создаваемого веб-проекта. В большинстве ситуаций при этом просто определяется тип создаваемого в проекте элемента, заданный по умолчанию.

Если вы работаете с одним или несколькими проектами, то сначала должны добавить элементы. Для этого выполните команду Add в контекстном меню, которое связано с узлом проекта в окне Solution Explorer. Первое подменю New Item запускает диалоговое окно Add New Item, как показано на рисунке ниже:

Подобно диалоговым окнам New Project и New Web Site, диалоговое окно Add New Item подверглось «косметической операции». Кроме перечисления только тех шаблонных элементов, которые являются релевантными выбранному проекту, это диалоговое окно позволяет искать установленные шаблоны, а также выходить в режим онлайн для поиска шаблонов, созданных другими.
Возвращаясь к контекстному меню Add, вы заметите большое количество заранее определенных сокращенных команд, таких как User Control и Class. Они делают немного больше, чем простой пропуск стадии поиска подходящего шаблона в диалоговом окне Add New Item. Это диалоговое окно по-прежнему открыто, поскольку вы должны задать имя создаваемого элемента.
Важно понимать, что вы добавляете в проект элементы, а не файлы. Хотя многие шаблоны содержат только один файл, некоторые команды, например Window или User Control, добавят в ваш проект несколько новых файлов.
Добавление ссылок
Выпуская новые технологии разработки программного обеспечения, их авторы каждый раз обещают более удобное повторное использование кода, но в действительности лишь некоторые из них выполняют данное обещание. Один из способов, с помощью которого Visual Studio 2013 поддерживает повторное использование компонентов, основан на ссылках проекта.
Раскрыв любой проект, вы обнаружите множество библиотек .NET Framework, например System и System.Core, на которые для создания проекта необходимо как-то сослаться. По существу, ссылки позволяют компилятору распознавать типы, свойства, поля и имена методов, определенные в сборке. Если хотите повторно использовать класс из сторонней библиотеки или вашу собственную сборку, созданную по технологии .NET, вы должны добавить ссылку на нее с помощью контекстного меню Add Reference, ассоциированного с узлом проекта в окне Solution Explorer.
Когда вы открываете диалоговое окно Add Reference, показанное на рисунке ниже, система Visual Studio 2013 исследует локальный компьютер, кэш глобальной сборки Global Assembly Cache и ваше решение, чтобы представить список известных библиотек, на которые можно ссылаться. Этот список содержит ссылки как на компоненты .NET, так и на компоненты COM, внося их в разные разделы, а также ссылки на проекты и недавно использованные ссылки.

В старых версиях системы Visual Studio это диалоговое окно загружалось чрезвычайно медленно. Если компонент, который вам необходим, не указан в списке, выберите закладку Browse, позволяющую найти файл, содержащий искомые компоненты, непосредственно в файловой системе. Если вы заблаговременно загрузили список проектов в ваше решение, представили его как закладку по умолчанию и теперь неторопливо загружаете содержание для остальных закладок, то это диалоговое окно откроется на экране почти мгновенно.
Как и в других проектно-ориентированных средах разработки, начиная с первых версий среды VB, вы можете добавлять в проект ссылки, а не скомпилированные двоичные компоненты. Преимущество этой модели состоит в том, что теперь легче выполнять отладку компонента, на который указывает ссылка, и вы сможете гарантированно работать только с самыми последними версиями всех компонентов, хотя в больших решениях эта процедура может оказаться слишком неповоротливой.
Если ваше решение состоит из многих проектов (как правило, крупным считается решение, состоящее более чём из двадцати проектов), то можете разделить его на несколько решений, соответствующих разным подмножествам проектов. В этом случае вы обогатите свой опыт отладки целого приложения и одновременно повысите производительность системы Visual Studio на этапах загрузки и построения решения. В качестве альтернативы можете создать разные конфигурации построения решения, чтобы создать подмножество проектов.
Добавление ссылок на службы
Другой тип ссылок, который обслуживает проводник Solution Explorer, называется ссылками на службу (service references). В предыдущих версиях системы Visual Studio они назывались веб-ссылками, но с появлением программной модели Windows Communication Foundation (WCF) в систему Visual Studio была включена более общая команда меню Add Service Reference. Она открывает диалоговое окно Add Service Reference, показанное на рисунке ниже. В данном примере использована возможность открывать выпадающее меню с помощью кнопки Discover, чтобы просмотреть список Services в решении.

К сожалению, это диалоговое окно еще раз демонстрирует, что компания Microsoft не совсем правильно понимает потребности пользователей. Хотя само диалоговое окно допускает изменение размеров, область для вывода ответного сообщения о статусе этого не позволяет, тем самым затрудняя чтение генерируемых сообщений об ошибках. К счастью, если при попытке системы Visual Studio 2013 получить доступ к информации о службе возникла ошибка, появляется гиперссылка, с помощью которой можно открыть диалоговое окно Add Service Reference Error. Как правило, это позволяет получить достаточную информацию, чтобы устранить проблему.
В левом нижнем углу на рисунке показана кнопка Advanced. Диалоговое окно Service Reference Settings, которое открывается после щелчка на этой кнопке, позволяет вам указать, какие типы считаются частью ссылки на службу. По умолчанию считается, что все локальные системные типы соответствуют типам, опубликованным службой. Если это условие не выполняется, то уточните значения в области Data Туре, которая является частью этого диалогового окна. В левом нижнем углу диалогового окна Service Reference Settings расположена кнопка Add Web Reference, позволяющая добавлять в решение более привычные веб-ссылки. Это может оказаться важным, если вы ограничены в ресурсах или пытаетесь поддерживать работу в нескольких системах.
