Как создать новое решение в visual studio

Обновлено: 06.07.2024

Презентацию к данной лекции Вы можете скачать здесь.

5.1. Проекты и решения в Visual Studio

Компилятор — это программа , которая преобразует высокоуровневые инструкции, создаваемые программистом, в инструкции более низкого уровня для выполнения на компьютере. В среде Microsoft . NET компилятор выдает код на промежуточном языке ( MSIL ), который при запуске программы компилируется в машинный код.

Эта команда скомпилирует файл MyProg.cs и создаст файл с именем MyProg.exe. Компилятор командной строки также доступен после установки Visual Studio .

Windows Phone SDK установит сразу все необходимые инструменты для создания приложений для Windows Phone : интерактивную среду разработки, эмулятор Windows Phone и другие инструменты. Инструменты также можно использовать для создания настольных приложений и игр XNA для компьютеров под управлением Windows и Xbox 360. Если в вашем компьютере установлена другая версия Visual Studio 2010, после установки Windows Phone SDK в нее будут добавлены новые типы проектов и инструменты.

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

После установки Windows Phone SDK значок Microsoft Visual Studio 2010 появится в списке программ.

Среда Visual Studio содержит большое количество кнопок, меню и инструментов, с которыми можно работать. Информацию об их назначении можно получить в справочной системе.

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

Простой проект Visual Studio

Проект является контейнером для набора программных файлов и ресурсов , которые создают файл сборки. Самый простой проект содержит единственный файл программы. Можно создать проект , выбрав в главном меню Файл -> Создать проект …. Откроется диалоговое окно Создать проект (рис. 5.1).

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

Если выбрать шаблон Консольное приложение, Visual Studio создаст минимальный проект , который содержит единственный файл программы с именем Program.cs. Этот файл содержит примерно такой код:

Созданный файл Library.cs теперь является частью проекта , и при построении проекта Visual Studio скомпилирует этот файл вместе с файлом Program.cs. Однако, в результате будет создан единственный исполняемый файл с именем Program.exe. Поэтому только в одном из этих файлов может быть метод Main, иначе компилятор не сможет определить, какой из этих классов должен начать работу. Класс Library изначально будет пустым:

Можно создать экземпляры этого класса в методе Main:

Пространства имен и проекты. Классы Library и Program находятся в пространстве имен SimpleProject. Часто бывает удобно помещать различные части системы в отдельные пространства имен . Это особенно важно, если программы создают разные люди. Если программист, который пишет код библиотеки, решает, что имя Save подходит для создаваемого им метода, другой программист, который работает над другим модулем той же самой программы, также может использовать имя Save и для своего метода.

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

Класс Library теперь находится в пространстве имен SimpleLibrary. Но попытка собрать проект приведет к возникновению ошибок (рис. 5.2).

Окно с информацией об ошибках компиляции программы


увеличить изображение
Рис. 5.2. Окно с информацией об ошибках компиляции программы

Метод Main класса Program пытается создать экземпляр класса Library. Этот класс больше не находится в пространстве имен SimpleProject, и таким образом, возникают ошибки. К счастью, поле Описание списка ошибок подсказывает, что возможно пропущена директива using. Можно решить проблему, добавив директиву using, чтобы указать компилятору на необходимость просмотра пространства имен SimpleLibrary, если нужно найти класс:

Другой способ решения проблемы — использовать полностью определенные имена для получения доступа к ресурсам библиотеки:

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

Добавление ресурсов в проект

Если программа должна использовать ресурсы (например, изображение для заставки программы), их также нужно добавить в проект . Можно добавить растровое изображение таким же образом, как и новый класс. После добавления изображения оно появится в обозревателе решений (рис. 5.3).

Список файлов проекта в обозревателе решений


Рис. 5.3. Список файлов проекта в обозревателе решений

Теперь решение содержит файл растрового изображения с именем Bitmap1.bmp. Можно выбрать способ управления этим содержимым в Visual Studio, изменив свойства этого объекта.

Свойства ресурсов . Как и у всех объектов, которыми управляет Visual Studio, у ресурсов проекта тоже есть свойства. Можно работать с свойствами ресурсов так же, как и со свойствами других объектов, — используя область свойств (рис. 5.4).

Свойства файла изображения

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

Этот код загрузит растровое изображение в переменную b класса Bitmap. Таким образом, можно легко добавлять в проект ресурсы .

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

Вместо этого можно встроить этот ресурс прямо в файл программы при ее построении. Когда программа будет создана, ее исполняемый файл будет содержать изображение. Это можно сделать, изменив свойства ресурса (рис. 5.5).

Свойства изображения, внедряемого в исполняемый файл


Рис. 5.5. Свойства изображения, внедряемого в исполняемый файл

Свойству Действие при построении файла Bitmap2.bmp присвоено значение Внедренный ресурс. Теперь изображение сохраняется внутри файла программы. Использовать этот ресурс немного сложнее, но будет гарантировано работать независимо от того, где программа установлена, поскольку при этом не используются дополнительные файлы:

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

Файлы сборки и исполняемые файлы

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

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

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

Список ссылок проекта в обозревателе решений


Рис. 5.6. Список ссылок проекта в обозревателе решений

Раздел Ссылки проекта содержит список всех ресурсов , которые использует приложение. При создании проекта определенного типа Visual Studio добавляет ссылки на ресурсы , которые требуются для построения проекта . Этим списком можно управлять самостоятельно. Например, для использования акселерометра в приложении для Windows Phone необходимо добавить ссылку на пространство имен Microsoft.Devices.Sensors.

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

В этой вводной статье мы изучим, что означает создание решения и проекта в Visual Studio. Решение — это контейнер для упорядочения одного проекта или нескольких связанных, например проекта библиотеки классов и соответствующего тестового проекта.

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

Для разработки приложений в Visual Studio не требуются решения и проекты. Вы можете просто открыть папку, содержащую код, и начать написание кода, сборку и отладку. Например, клонированный репозиторий GitHub может не содержать проекты и решения Visual Studio. Дополнительные сведения см. в статье Разработка кода в Visual Studio без использования проектов и решений.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio 2019 бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Проекты и решения

В Visual Studio решение не является "ответом". Решения — это просто контейнеры, используемые Visual Studio для упорядочения одного проекта или нескольких связанных. Когда вы открываете решение в среде Visual Studio, все содержащиеся в нем проекты загружаются автоматически.

Создание решения

Обучение мы начнем с создания пустого решения. Когда вы научитесь работать в Visual Studio, скорее всего, создавать пустые решения вам потребуется не слишком часто. При создании проекта в среде Visual Studio она автоматически создает решение для размещения проекта, если никакое решение еще не открыто.

Запустите Visual Studio.

В верхней строке меню выберите Файл > Создать > Проект.

Откроется диалоговое окно Новый проект .

В левой области разверните узел Другие типы проектов и выберите Решения Visual Studio. На центральной панели выберите шаблон Пустое решение. Присвойте решению имя QuickSolution и нажмите кнопку ОК.

Снимок экрана: шаблон пустого решения, выбранный в Visual Studio 2017

Начальная страница закрывается, а решение отображается в Обозревателе решений в правой части окна Visual Studio. Вероятнее всего, вы довольно часто будете использовать Обозреватель решений для просмотра содержимого проектов.

Запустите Visual Studio.

В окне запуска выберите Создание нового проекта.

На странице Создание нового проекта введите в поле поиска пустое решение, выберите шаблон Пустое решение и нажмите Далее.

Снимок экрана: шаблон пустого решения, выбранный в Visual Studio 2019

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

Присвойте решению имя QuickSolution и щелкните Создать.

Решение отобразится в Обозревателе решений в правой части окна Visual Studio. Вероятнее всего, вы довольно часто будете использовать Обозреватель решений для просмотра содержимого проектов.

Откройте Visual Studio и в начальном окне выберите Создать проект.

На странице Создание нового проекта введите в поле поиска пустое решение, выберите шаблон Пустое решение и нажмите Далее.

Снимок экрана: шаблон пустого решения, выбранный в Visual Studio

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

На странице Настройка нового проекта введите имя решения QuickSolution и выберите Создать.

Решение QuickSolution отобразится в Обозревателе решений в правой части окна Visual Studio. Вы довольно часто будете использовать Обозреватель решений для просмотра содержимого проектов.

Добавление проекта

А теперь давайте добавим первый проект в это решение. Начните с пустого проекта и добавьте необходимые элементы.

В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение QuickSolution в Обозревателе решений, выберите Добавить > Новый проект.

Откроется диалоговое окно Добавить новый проект .

Проект с именем "QuickDate" появляется под решением в Обозревателе решений. Сейчас он содержит один файл с именем App.config.

Снимок экрана: ссылка "Открыть Visual Studio Installer"

В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение QuickSolution в Обозревателе решений, выберите Добавить > Новый проект.

Открывается диалоговое окно с заголовком Добавление проекта.

Присвойте проекту имя QuickDate и выберите Создать.

Проект с именем "QuickDate" появляется под решением в Обозревателе решений. Сейчас он содержит один файл с именем App.config.

Снимок экрана: ссылка "Открыть Visual Studio Installer"

Щелкните правой кнопкой мыши элемент Решение QuickSolution в Обозревателе решений и выберите Добавить > Новый проект в контекстном меню.

Снимок экрана: ссылка "Открыть Visual Studio Installer"

На странице Настроить новый проект укажите имя проекта QuickDate и выберите Создать.

Проект с именем QuickDate появляется под решением в Обозревателе решений. Сейчас проект содержит один файл с именем App.config.

Добавление элемента в проект

Добавьте файл кода в пустой проект.

В контекстном меню, вызываемом щелчком правой кнопкой мыши проекта QuickDate в Обозревателе решений, выберите Добавить > Новый элемент.

Откроется диалоговое окно Добавление нового элемента.

Замените содержимое файла Calendar.cs приведенным ниже кодом:

Вам не нужно понимать все, что делает код. Запустите приложение, нажав клавиши CTRL+F5, и убедитесь, что приложение выводит текущую дату в консоли или в окне стандартного потока вывода. Затем закройте окно консоли.

Добавление второго проекта

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

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

В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение QuickSolution в Обозревателе решений, выберите Добавить > Новый проект.

Второй проект добавляется в Обозреватель решений, а файл с именем UnitTest1.cs открывается в редакторе.

Снимок экрана: Обозреватель решений с двумя проектами

В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение QuickSolution в Обозревателе решений, выберите Добавить > Новый проект.

Назовите проект QuickTest и щелкните ОК.

Второй проект добавляется в Обозреватель решений, а файл с именем UnitTest1.cs открывается в редакторе.

Снимок экрана: Обозреватель решений с двумя проектами

В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение QuickSolution в Обозревателе решений, выберите Добавить > Новый проект.

На странице Настроить новый проект укажите имя проекта QuickTest и выберите Создать.

Visual Studio добавляет проект QuickTest в Обозреватель решений, а файл UnitTest1.cs открывается в редакторе.

Снимок экрана: Обозреватель решений с двумя проектами

Добавление ссылки на проект

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

Выберите узел Зависимости в проекте QuickTest, а затем в контекстном меню, вызываемом щелчком правой кнопкой мыши, выберите пункт Добавить ссылку.

Открывается диалоговое окно Диспетчер ссылок.

В левой области разверните узел Проекты и выберите Решение. В средней области установите флажок рядом с пунктом QuickDate и нажмите ОК.

Добавляется ссылка на проект QuickDate.

Снимок экрана: Обозреватель решений со ссылкой на проект в Visual Studio

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

Открывается диалоговое окно Диспетчер ссылок.

В левой области разверните узел Проекты и выберите Решение. В средней области установите флажок рядом с пунктом QuickDate и нажмите ОК.

Добавляется ссылка на проект QuickDate.

Снимок экрана: Обозреватель решений со ссылкой на проект в Visual Studio 2019

В обозревателе решений щелкните узел Ссылки в проекте QuickTest правой кнопкой мыши и выберите в контекстном меню пункт Добавить ссылку.

В диалоговом окне Диспетчер ссылок в разделе Проекты установите флажок для проекта QuickDate и нажмите OK.

Ссылка на проект QuickDate отображается в проекте QuickTest в Обозревателе решений.

Снимок экрана: Обозреватель решений со ссылкой на проект

Добавление кода теста

Некоторая часть кода подчеркнута красной волнистой линией. Мы устраним эту ошибку, сделав тестовый проект дружественной сборкой для проекта QuickDate.

Добавьте следующую инструкцию using и атрибут InternalsVisibleToAttribute в начало файла Calendar.cs, чтобы устранить ошибку в тестовом проекте.

Код Calendar.cs должен выглядеть как на следующем снимке экрана.

выполнить модульный тест.

Если вы хотите проверить работоспособность модульного теста, выберите Тест > Запуск > Все тесты в строке меню. Открывается окно Обозреватель тестов, где должно быть указано, что тест TestGetCurrentDate пройден.

Чтобы проверить работоспособность модульного теста, выберите Тест > Запустить все тесты в строке меню. Открывается окно Обозреватель тестов, где должно быть указано, что тест TestGetCurrentDate пройден.

Снимок экрана: обозреватель тестов с пройденным тестом

Снимок экрана: обозреватель тестов с пройденным тестом

Если Обозреватель тестов не открывается автоматически, выберите в строке меню Тест > Windows > Обозреватель тестов.

Если Обозреватель тестов не открывается автоматически, выберите в строке меню Тест > Обозреватель тестов.

Свойства проекта

В Обозревателе решений щелкните правой кнопкой мыши проект QuickTest и выберите Свойства или выберите проект и нажмите клавиши ALT+ВВОД.

При необходимости это имя можно изменить здесь. При сборке тестового проекта имя итогового двоичного файла изменится с QuickTest.dll на <NewName>.dll.

Снимок экрана: свойства проекта

Снимок экрана: свойства проекта

Изучите другие вкладки на страницах свойств проекта, такие как Сборка и Отладка. Эти вкладки отличаются для различных типов проектов.

В этой статье мы расскажем, как быстро создать новый проект из шаблона в Visual Studio.

Открытие диалогового окна "Новый проект"

Создать проект в Visual Studio 2017 можно несколькими способами. На начальной странице можно ввести имя шаблона проекта в поле Поиск шаблонов проектов или выбрать ссылку Создать проект, чтобы открыть диалоговое окно Новый проект. Кроме начальной страницы, также можно последовательно выбрать элементы Файл > Создать > Проект в строке меню или нажать на панели инструментов кнопку Создать проект.

Снимок экрана: строка меню в Visual Studio с выбранным параметром "Файл > Создать > Проект".

Выбор типа шаблона

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

Список доступных языков и шаблонов проектов зависит от используемой версии Visual Studio и установленных рабочих нагрузок. Сведения об установке дополнительных рабочих нагрузок см. в статье Изменение Visual Studio путем добавления или удаления рабочих нагрузок и компонентов.

Чтобы открыть список шаблонов для требуемого языка программирования, щелкните треугольник рядом с названием языка, а затем выберите категорию проекта (например, "Рабочий стол Windows").

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

Настройка проекта

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

Открытие страницы "Создание проекта"

Создать проект в Visual Studio 2019 можно несколькими способами. При первом открытии Visual Studio отображается начальное окно, где можно выбрать элемент Создать проект.

Снимок экрана: диалоговое окно &quot;Создать проект&quot; в окне запуска в Visual Studio 2019

Если среда разработки Visual Studio уже открыта, проект можно создать, выбрав Файл > Создать > Проект в строке меню. А также выбрав Создать проект на панели инструментов, или нажав комбинацию клавиш Ctrl+Shift+N.

Выбор типа шаблона

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

Снимок экрана: фильтры шаблонов проектов в Visual Studio 2019.

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

Снимок экрана: ссылка &quot;Установка других средств и компонентов&quot; в Visual Studio 2019.

Выберите шаблон и нажмите кнопку Далее.

Настройка проекта

Снимок экрана: страница &quot;Настроить новый проект&quot; в Visual Studio 2019.

Если вы создаете проект, когда в Visual Studio уже открыт проект или решение, доступен дополнительный параметр конфигурации. Вы можете создать решение или добавить новый проект в уже открытое решение.

Снимок экрана: диалоговое окно &quot;Создать новое решение&quot; или &quot;Добавить в решение&quot; в Visual Studio 2019.

Щелкните Создать, чтобы создать новый проект.

Добавление дополнительных проектов в решение

Чтобы добавить дополнительный тестовый проект в решение, в Обозревателе решений щелкните узел решения правой кнопкой мыши, а потом выберите пункты Добавить > Новый проект.

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

В отличие от простейших программ, таких как "Hello World", большинство приложений состоит из нескольких исходных файлов. Это обстоятельство порождает массу проблем, в частности, как назвать файлы, где их разместить и можно ли их использовать повторно. В интегрированной среде разработки Visual Studio принята концепция решения (solution), состоящего из ряда проектов, которые в свою очередь состоят из ряда элементов, благодаря которой разработчики могут работать с исходными файлами. Интегрированная среда разработки имеет множество встроенных инструментов, позволяющих упростить этот процесс, обеспечив разработчикам доступ к большей части их приложений. Далее рассматриваются структура решений и проектов, доступные типы проектов и способы настройки их конфигурации.

Структура решения

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

Наиболее распространенным способом структурирования приложений в среде Visual Studio является одно отдельное решение, содержащее много проектов. Каждый проект можно создать из набора исходных файлов и папок. Главное окно, в котором пользователь работает с решениями и проектами, называется Solution Explorer:

Окно Solution Explorer среды Visual Studio

Для организации работы с исходным кодом и предотвращения его ассоциации с приложениями (за исключением веб-приложений, в которых существуют специальные папки, имеющие особое предназначение в данном контексте) используются папки (folders). Некоторые разработчики используют имена папок, соответствующие пространствам имен, которым принадлежат классы. Например, если класс Person находится в папке DataClasses в проекте FirstProject, то полностью квалифицированное имя класса может выглядеть как FirstProject.DataClasses.Person.

Папки решения (solution folders) - полезный способ организации проектов в большом решении. Они отображаются только в окне Solution Explorer - физически в файловой системе их не существует. Такие действия, как Build или Unload, можно легко выполнять над всеми проектами, включенными в папку решения. Для того чтобы разгрузить окно Solution Explorer, папки решения могут быть свернуты или скрыты.

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

Папка Miscellaneous Files - это специальная папка решения, которую можно использовать для того, чтобы следить за тем, какие еще файлы, не являющиеся частью какого-либо проекта в решении, были открыты в системе Visual Studio. По умолчанию папка Miscellaneous Files скрыта. Для того чтобы сделать ее видимой, следует выполнить команду Tools --> Options --> Environment --> Documents --> Show Miscellaneous Files.

Несмотря на то что формат файла решения, принятый в предыдущих версиях, не изменился, в системе Visual Studio 2010 открыть файл решения, созданный в версии Visual Studio 2013, невозможно.

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

Формат файла решения

Система Visual Studio 2013 фактически создает для решения два файла, имеющих расширения .suo и .sln (solution file). Первый - это довольно неинтересный бинарный файл, который сложно редактировать. Он содержит информацию, специфичную для пользователя, например, какие файлы были открыты, когда решение закрывалось в последний раз и где находились контрольные точки. Этот файл скрыт, поэтому он не должен появляться в папке решения при использовании Windows Explorer, если не снять с него соответствующую метку.

Иногда файл .suo оказывается поврежденным, и это вызывает непредсказуемые последствия при сборке и редактировании приложений. Если при работе с конкретным решением система Visual Studio становится нестабильной, необходимо выйти из нее и удалить файл с расширением .suo. Он будет создан заново системой Visual Studio, когда решение будет открыто в следующий раз. Файл решения с расширением .sln содержит информацию о решении, например список проектов, конфигурации сборки и другие настройки, не специфичные для проекта. В отличие от многих файлов, используемых в системе Visual Studio 2013, файл решения не является XML-документом. Он хранит информацию в блоках, как показано в следующем примере:

В этом примере решение состоит из трех проектов (GettingStarted, Information Services и Reference Library), а раздел Global содержит настройки, которые применяются к решению. Например, само решение будет видимым в окне Solution Explorer, потому что настройка HideSolutionNode установлена равной FALSE. Если изменить ее на TRUE, имя решения не будет отображаться в системе Visual Studio.

Свойства решения

Для того чтобы открыть диалоговое окно Properties, необходимо щелкнуть правой кнопкой мыши на узле Solution в окне Solution Explorer и выбрать команду Properties. Это диалоговое окно содержит два узла: Common properties и Configuration properties, как показано на рисунке ниже:

Свойства решения в Visual Studio

Более подробно узлы Common properties и Configuration properties описываются в следующих разделах.

Узел Common Properties

Определяя проект Startup Project для приложения, пользователь имеет три возможности, которые являются практически очевидными. Выбор Current Selection запускает проект, который в данный момент находится в фокусе окна Solution Explorer. Вариант Single Startup гарантирует, что каждый раз будет запускаться один и тот же проект. Эта установка задается по умолчанию, поскольку большинство приложений имеют только один стартовый проект. Последний вариант, Multiple Startup Projects, позволяет запускать несколько проектов в определенном порядке. Это может быть полезным при работе с приложением клиент/сервер в рамках одного решения, причем требуется, чтобы и клиент, и сервер выполнялись одновременно. При выполнении нескольких проектов важно контролировать порядок их запуска. Для управления порядком запуска проектов можно использовать навигационные кнопки, расположенные после списка проектов.

Раздел Project Dependencies используется для того, чтобы задавать другие проекты, от которых зависит конкретный проект. В большинстве случаев система Visual Studio сама управляет этими свойствами, когда пользователь добавляет или удаляет связи между проектами и данным проектом. Однако иногда пользователь может самостоятельно создать связи между проектами, чтобы они собирались в заданном порядке. Система Visual Studio использует этот список зависимостей, для того чтобы определить порядок сборки проектов. Окно этого раздела предотвращает неосторожное добавление циклических связей и удаление необходимых зависимостей между проектами.

В разделе Debug Source Files можно создать список каталогов, в которых система Visual Studio может искать исходные файлы при отладке. Этот список задается по умолчанию и просматривается перед открытием диалогового окна Find Source. Кроме того, пользователь может перечислить исходные файлы, которые система Visual Studio не должна искать. Если щелкнуть на кнопке Cancel в момент, когда система предлагает найти конкретный исходный файл, то он будет добавлен в этот список.

Раздел Code Analysis Settings доступен только в версии Visual Studio Team Suite. Это позволяет выбирать набор правил статического анализа кода, которые будут применяться к конкретному проекту. Более подробно раздел Code Analysis обсуждается далее.

Узел Configuration Properties

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

Например, может быть создана новая конфигурация решения Test, состоящая из двух проектов: MyClassLibrary и MyClassLibraryTest. Когда пользователь создает свое приложение в конфигурации Test, он хочет, чтобы проект MyClassLibrary был собран в режиме Release, чтобы тестировать его в виде, максимально приближенном к окончательной версии. Однако, чтобы проверить тестируемый код, необходимо собрать тестовый проект в режиме Debug.

Когда пользователь собирает проект в режиме Release, он не хочет, чтобы решение Test было собрано или развернуто вместе с приложением. В данном случае в конфигурации решения Test можно указать, что пользователь хочет, чтобы проект MyClassLibrary был собран в режиме Release, а проект MyClassLibraryTest вообще не собирался.

Пользователь может легко переключаться между этими конфигурациями с помощью меню Configuration стандартной инструментальной панели. Однако, переключаться между платформами не так легко, потому что меню Platform нет ни в одной инструментальной панели. Для того чтобы сделать ее доступной, необходимо выбрать команду View --> Toolbars --> Customize. Затем элемент Solution Platforms из категории Build на закладке Command можно перетащить на инструментальную панель.

Следует отметить, что, выбрав узел Configuration Properties в диалоговом окне Solution Properties, как показано на рисунке ниже, можно получить доступ к раскрывающимся спискам Configuration и Platform. Раскрывающийся список Configuration содержит все доступные конфигурации решения: Debug и Release (заданные по умолчанию), Active и All Configurations. Аналогично в раскрывающемся списке Platform перечислены все доступные платформы. Как только пользователь получит доступ к этим раскрывающимся спискам, он может на этой же странице задать настройки для каждой конфигурации и/или платформы. Для того чтобы добавить новые конфигурации и/или платформы для решения, пользователь может также использовать кнопку Configuration Manager.

Раздел Configuration Properties в окне свойств решения

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

Возможности, доступные для создания новых платформенных конфигураций, ограничены типами доступных центральных процессоров: Itanium, x86 и x64. Новая платформенная конфигурация также может основываться на существующих платформенных конфигурациях, и существует возможность создания платформенной конфигурации для проекта.

В конфигурационном файле решения можно также задать тип центрального процессора, для которого оно собирается. Это особенно удобно, если нужно развернуть приложение для компьютеров с 64-битовой архитектурой. Установить настройки для всех этих решений можно непосредственно в контекстном меню, которое открывается после щелчка правой кнопкой мыши на узле Solution node в окне Solution Explorer. В то время как команда Set Startup Projects открывает окно конфигурации решения, команды Configuration Manager, Project Dependencies и Project Build Order открывают окно Configuration Manager and Project Dependencies. Команды Project Dependencies и Project Build Order отображаются в окне, только если решение состоит из нескольких проектов.

Команда Project Build Order открывает окно Project Dependencies и перечисляет порядок сборки, как показано на рисунке ниже:

Окно Project Dependencies

Закладка Build Order демонстрирует порядок, в котором должны собираться проекты в соответствии с зависимостями между ними. Это может оказаться полезным, если пользователь поддерживает ссылки на бинарные сборки проектов, а не ссылки на проекты. Кроме того, эту возможность можно использовать для двойной проверки того, что проекты будут собраны в правильном порядке.

Читайте также: