Поделиться через


Сведения о проектах и решениях с использованием Visual Basic

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

Совет

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

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

Примечание.

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

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

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

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

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

  1. Откройте Visual Studio.

  2. На начальном экране выберите Создать проект.

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

    Screenshot showing the Create a new project window with 'blank solution' in the search box and the Blank Solution project template selected.

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

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

  1. Откройте Visual Studio.

  2. На начальном экране выберите Создать проект.

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

    Screenshot showing the Create a new project window with 'blank solution' in the search box and the Blank Solution project template selected.

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

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

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

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

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

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

  2. Введите текст пустой в поле поиска вверху, а затем выберите Visual Basic в разделе Язык.

  3. Выберите шаблон Пустой проект (.NET Framework) и нажмите Далее.

  4. Назовите проект QuickDate и нажмите кнопку Создать.

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

    Примечание.

    Если вы не видите шаблон Пустой проект (.NET Framework), установите рабочую нагрузку Visual Studio Разработка классических приложений .NET. Visual Studio использует установку на основе рабочей нагрузки, чтобы устанавливать только те компоненты, которые необходимы для этого типа разработки. Простой способ установить новую рабочую нагрузку при создании нового проекта — выбрать ссылку Установить дополнительные средства и компоненты под текстом Не можете найти то, что ищете?. После запуска Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений .NET и нажмите кнопу Изменить.

    Screenshot showing the Create a new project window with the 'Install more tools and features' link highlighted.

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

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

  2. Введите текст пустой в поле поиска вверху, а затем выберите Visual Basic в раскрывающемся списке Все языки.

  3. Выберите шаблон Пустой проект (.NET Framework) и нажмите Далее.

  4. Назовите проект QuickDate и нажмите кнопку Создать.

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

    Примечание.

    Если вы не видите шаблон Пустой проект (.NET Framework), установите рабочую нагрузку Visual Studio Разработка классических приложений .NET. Visual Studio использует установку на основе рабочей нагрузки, чтобы устанавливать только те компоненты, которые необходимы для этого типа разработки. Простой способ установить новую рабочую нагрузку при создании нового проекта — выбрать ссылку Установить дополнительные средства и компоненты под текстом Не можете найти то, что ищете?. После запуска Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений .NET и нажмите кнопу Изменить.

    Screenshot showing the Create a new project window with the 'Install more tools and features' link highlighted.

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

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

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

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

  2. Разверните узел Общие элементы и выберите Код. В средней области выберите шаблон элемента Класс. Задайте для класса имя Calendar и нажмите кнопку Добавить.

    В проект добавляется файл Calendar.vb. Расширение VB присваивается файлам кода Visual Basic. Этот файл появляется в иерархии проекта в обозревателе решений, а его содержимое открывается в редакторе.

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

    Class Calendar
        Public Shared Function GetCurrentDate() As Date
            Return DateTime.Now.Date
        End Function
    End Class
    

    Класс Calendar содержит одну функцию GetCurrentDate, которая возвращает текущую дату.

  4. Откройте свойства проекта, дважды щелкнув Мой проект в обозревателе решений. На вкладке Приложения для параметра Тип приложения выберите значение Библиотека классов. Этот шаг необходим для успешной сборки проекта.

  5. Выполните сборку, щелкнув правой кнопкой мыши элемент QuickDate в обозревателе решений и выбрав команду Сборка. В окне вывода появится сообщение об успешном выполнении сборки.

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

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

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

  1. В контекстном меню, вызываемом щелчком правой кнопкой мыши элемента Решение "QuickSolution" в обозревателе решений, выберите пункты Добавить>Создать проект.
  1. В диалоговом окне Добавить новый проект введите текст модульный тест в поле поиска вверху, а затем выберите Visual Basic в разделе Язык.

  2. Выберите шаблон проекта Проект модульного теста (.NET Framework) и нажмите кнопку Далее.

  3. Укажите QuickTest в качестве имени проекта и нажмите кнопку Создать.

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

  1. В диалоговом окне Добавить новый проект введите текст модульный тест в поле поиска вверху, а затем выберите Visual Basic в раскрывающемся списке Все языки.

  2. Выберите шаблон проекта Проект модульного теста (.NET Framework) и нажмите кнопку Далее.

  3. Укажите QuickTest в качестве имени проекта и нажмите кнопку Создать.

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

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

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

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

    Screenshot showing the context menu for the References node in the QuickTest project, with the 'Add Reference' option selected.

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

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

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

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

    Screenshot showing the context menu for the References node in the QuickTest project, with the 'Add Reference' option selected.

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

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

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

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

  1. Теперь мы добавим код теста в файл кода Visual Basic. Замените все содержимое файла UnitTest1.vb приведенным ниже кодом.

    <TestClass()> Public Class UnitTest1
    
        <TestMethod()> Public Sub TestGetCurrentDate()
            Assert.AreEqual(Date.Now.Date, QuickDate.Calendar.GetCurrentDate())
        End Sub
    
    End Class
    

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

  2. В проекте QuickDate откройте файл Calendar.vb, если он еще не открыт, и добавьте указанный ниже оператор Imports и атрибут InternalsVisibleToAttribute для устранения ошибки в тестовом проекте.

    Imports System.Runtime.CompilerServices
    
    <Assembly: InternalsVisibleTo("QuickTest")>
    

    Файл кода должен выглядеть следующим образом:

    Screenshot showing the code for Calendar.vb in the Visual Basic code editor window, after the Imports statement and Assembly attribute lines have been added.

  1. Теперь мы добавим код теста в файл кода Visual Basic. Замените все содержимое файла UnitTest1.vb приведенным ниже кодом.

    <TestClass()> Public Class UnitTest1
    
        <TestMethod()> Public Sub TestGetCurrentDate()
            Assert.AreEqual(Date.Now.Date, QuickDate.Calendar.GetCurrentDate())
        End Sub
    
    End Class
    

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

  2. В проекте QuickDate откройте файл Calendar.vb, если он еще не открыт, и добавьте указанный ниже оператор Imports и атрибут InternalsVisibleToAttribute для устранения ошибки в тестовом проекте.

    Imports System.Runtime.CompilerServices
    
    <Assembly: InternalsVisibleTo("QuickTest")>
    

    Файл кода должен выглядеть следующим образом:

    Screenshot showing the code for Calendar.vb in the Visual Basic code editor window after the Imports statement and Assembly attribute lines have been added.

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

Строка в файле Calendar.vb, содержащая атрибут InternalsVisibleToAttribute, ссылается на имя сборки (имя файла) проекта QuickTest. Имя сборки может не всегда совпадать с именем проекта. Чтобы найти имя сборки проекта, откройте свойства проекта.

  1. Выберите проект QuickTest в Обозревателе решений. Выберите Свойства в контекстном меню или просто нажмите клавиши ALT+ВВОД. (Также можно дважды щелкнуть Мой проект в окне обозревателя решений.)

    Страницы свойств для проекта открываются на вкладке "Приложение". Страницы свойств содержат различные параметры проекта. Обратите внимание, что имя сборки проекта QuickTest действительно имеет значение "QuickTest". Если вы хотите изменить имя сборки, это можно сделать здесь. Позже, при сборке тестового проекта, имя итогового двоичного файла изменится с QuickTest.dll на то, которое вы выбрали.

    Screenshot showing the Application tab of the property pages for the QuickTest project. The Assembly name field is highlighted and the value is 'QuickTest'.

  2. Изучите другие вкладки на страницах свойств, такие как Компиляция и Параметры. Эти вкладки отличаются для различных типов проектов.

Строка в файле Calendar.vb, содержащая атрибут InternalsVisibleToAttribute, ссылается на имя сборки (имя файла) проекта QuickTest. Имя сборки может не всегда совпадать с именем проекта. Чтобы найти имя сборки проекта, откройте свойства проекта.

  1. Выберите проект QuickTest в Обозревателе решений. Выберите Свойства в контекстном меню или просто нажмите клавиши ALT+ВВОД. (Также можно дважды щелкнуть Мой проект в окне обозревателя решений.)

    Страницы свойств для проекта открываются на вкладке "Приложение". Страницы свойств содержат различные параметры проекта. Обратите внимание, что имя сборки проекта QuickTest действительно имеет значение "QuickTest". Если вы хотите изменить имя сборки, это можно сделать здесь. Позже, при сборке тестового проекта, имя итогового двоичного файла изменится с QuickTest.dll на то, которое вы выбрали.

    Screenshot showing the Application tab of the property pages for the QuickTest project. The Assembly name field is highlighted and the value is 'QuickTest'.

  2. Изучите другие вкладки на страницах свойств, такие как Компиляция и Параметры. Эти вкладки отличаются для различных типов проектов.

Запуск теста (необязательно)

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

Screenshot of the Test Explorer in Visual Studio showing that the TestGetCurrentDate test passed.

Совет

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

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

Screenshot of the Test Explorer in Visual Studio showing that the TestGetCurrentDate test passed.

Совет

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

Следующие шаги

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

См. также