Практическое руководство. Изменение выходного каталога сборки

Применимо к:yesnoVisual Studio Visual Studio для Mac Visual Studio Code no

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

Изменение выходного каталога сборки

  1. Чтобы открыть страницы свойств проекта, в обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства.

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

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

  4. Найдите запись выходного пути на странице— она отличается в зависимости от типа проекта:

    • Выходной путь для проектов C# и JavaScript
    • Выходной путь сборки для проектов Visual Basic
    • Выходной каталог для проектов Visual C++

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

    Output path property for a Visual Studio C# project

    Примечание

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

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Совет

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

Build configuration picker in Visual Studio 2019.

Изменение выходного каталога сборки

В Visual Studio 2022 г. существуют различные пользовательские интерфейсы конструктора Project в зависимости от типа проекта. C# платформа .NET Framework и все проекты Visual Basic используют устаревший конструктор .NET Project, но проекты C# .NET Core (и .NET 5 и более поздних версий) используют текущую .NET Project Дизайнер. Проекты C++ используют собственный пользовательский интерфейс страниц свойств. Действия, описанные в этом разделе, зависят от используемого конструктора Project.

Изменение выходного каталога сборки с помощью устаревших страниц свойств конструктора .NET Project или C++

  1. Щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите "Свойства".

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

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

  4. Найдите запись выходного пути на странице— она отличается в зависимости от типа проекта:

    • Выходной путь для проектов C# и JavaScript
    • Выходной путь сборки для проектов Visual Basic
    • Выходной каталог для проектов Visual C++

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

    Output path property for a C# .NET Framework project

    Примечание

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

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Изменение выходного каталога сборки с помощью текущего конструктора .NET Project

  1. Щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите "Свойства".

  2. Разверните раздел "Сборка" и выберите подраздел "Выходные данные ".

  3. Найдите базовый выходной путь для C# и введите путь для создания выходных данных (абсолютный или относительный к корневому каталогу проекта) или нажмите кнопку "Обзор", чтобы перейти к этой папке. Обратите внимание, что имя конфигурации добавляется к базовому выходному пути для создания фактического выходного пути.

    Output path property for a .NET Core C# project

    Примечание

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

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Совет

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

Build configuration picker in Visual Studio 2022.

Сборка в общий выходной каталог

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

Помещение всех выходных данных решения в общий каталог

  1. Щелкните один проект в решении.

  2. В меню Проект выберите Свойства.

  3. В каждом проекте в зависимости от типа выберите "Компиляция " или " Сборка" и задайте выходной путь или базовый путь к папке, используемой для всех проектов в решении.

  4. Откройте файл проекта и добавьте следующее объявление свойства в первую группу свойств.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Задание параметру UseCommonOutputDirectory значения true указывает Visual Studio и его обработчику сборки MSBuild, что вы помещаете выходные данные нескольких проектов в одну папку, поэтому MSBuild будет пропускать этап копирования, которое обычно выполняется, если проекты зависят от других проектов.

  5. Повторите шаги 1–4 для всех проектов в решении. Можно пропустить некоторые проекты в качестве исключения, если они не должны использовать общий выходной каталог.

Задание промежуточного выходного каталога для проекта (проекты .NET)

  1. Откройте файл проекта.

  2. Добавьте следующее объявление свойства в первую группу свойств.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    <PropertyGroup>
    

    Можно использовать как относительный путь к файлу проекта, так и абсолютный. Если вы хотите указать имя проекта в пути, можно сделать ссылку на него с помощью свойств MSBuild $(MSBuildProjectName) и $(MSBuildProjectDirectory). Другие доступные свойства см. в статье Зарезервированные и стандартные свойства MSBuild.

  3. При сборке Visual Studio по-прежнему будет создавать папку "obj" в папке проекта, но она будет пуста. Ее можно удалить во время сборки. Чтобы сделать это, можно добавить событие после сборки для выполнения следующей команды:

    rd "$(ProjectDir)obj" /s /q
    

    См. статью Указание пользовательских событий сборки.

    Папка "obj" не будет создаваться при выполнении сборки из командной строки MSBuild.

См. также раздел