Visual studio release как создать
При создании нового проекта в Visual Studio по умолчанию вы получаете две конфигурации сборки: Debug и Release. И для большинства мелких проектов этого вполне достаточно. Но с ростом проекта может возникнуть потребность добавить дополнительные конфигурации. И хорошо, если нужно добавить одну-две новые конфигурации, а если их добрый десяток? А если при этом в солюшене находится штук 20 проектов, для каждого из которых эти конфигурации нужно настроить? В данном случае управлять параметрами сборки и модифицировать их становится достаточно сложно.
В этом посте будет рассмотрен способ, с помощью которого вы сможете немного упростить себе жизнь, существенно сократив описание конфигураций сборок.
Откройте csproj-файл одного из ваших проектов, вы найдёте в нём строчки такого вида:
Первая проблема, которая стоит перед нами, состоит в том, что эти строчки дублируются (или практически дублируются) во всех проектах. К счастью, csproj-файлы поддерживают импорт конфигураций, так что создадим в корне солюшена файл Configurations.targets следующего содержания:
После этого вы сможете заменить соответствующие строчки в исходном csproj-файле на
Отлично, теперь дублирование описаний конфигураций ушло, можно сосредоточиться на редактировании единственного файла. Можно заметить, что в Debug и Release конфигурациях некоторые строчки всё ещё дублируются. Предполагается, что разработчик захочет настроить все эти параметры индивидуально для каждой конфигурации. Если такой потребности нет, то можно вынести дублирующиеся строчки в общую PropertyGroup :
Можно ли ещё что-нибудь улучшить? Давайте подумаем. Глаз сразу цепляется за OutputPath , который можно «вычислить» из названия конфигурации. При наличии двух конфигураций можно оставить для каждой индивидуальную настройку, но вот если конфигураций будет очень много, то здорово было бы сделать так, чтобы OutputPath выводился из названия конфигурации. Тут нам на помощь приходит переменная $(Configuration) , с помощью которой это самое название можно узнать:
Замечательно, дублирование ушло. От чего ещё можно избавиться? Как правило, выставляемые свойства зависят только от конфигурации, изменение платформы ни на что не влияет. Давайте уберём лишнее условие:
Теперь добавим новых конфигураций. Положим, мы хотим ввести в наше приложение Demo-режим, в котором будут доступны не все функции. Demo-режим также может потребоваться отладить, поэтому разумно создать конфигурации DebugDemo и ReleaseDemo . А ещё, к примеру, мы хотим ввести режим сборки, при котором от пользователя будет требоваться лицензия. Demo-версию также может понадобится лицензировать, так что мы имеем ещё 4 конфигурации: DebugLicense , ReleaseLicense , DebugDemoLicense , ReleaseDemoLicense (данная ситуация приведена только для примера, в вашем проекте может быть всё иначе). Demo и License будут добавлять новые переменные в DefineConstatns . Казалось бы, для 8 конфигураций нужно сделать 8 отдельных PropertyGroup , но что-то внутри сознания сразу начинает протестовать. К счастью, в Condition можно разместить более сложное условие, нежели простое сравнение. В данном примере будем искать заданную подстроку в названии конфигурации:
Выглядит вполне неплохо. Но только образовалась проблема: Visual Studio теперь «не видит» список доступных конфигураций. Эту проблему можно решить, добавив пустых PropertyGroup c таким же Condition , как были вначале. При этом можно добавлять не все возможные конфигурации, а только те, которые вы реально будете использовать при работе. Например, мы не хотим отлаживать Demo и License конфигурации, тогда можно написать так:
Если у вас есть врождённая ненависть к дублированию чего угодно, то в получившийся файл можно также вынести дополнительные свойства, которые дублируются во всех проектах. Например так:
Теперь точно всё дублирование ушло, а настраивать конфигурации стало легко и просто. Хочется отметить, что совершенно не обязательно данный подход подойдёт именно вам, многие проекты отлично пишутся и без правки конфигураций. А иногда каждую конфигурацию для каждого проекта и каждой платформы приходится настраивать вручную — в этом случае не особо получится сэкономить на удалении дублирования. Но если всё-таки возникла проблема с настройкой большого количества конфигураций для большого количество проектов, то, возможно, этот способ вам пригодится. Также будет полезно почитать справочные сведения о сборке в MSDN:
Проекты Visual Studio имеют отдельные конфигурации выпуска и отладки для вашей программы. Производится построение отладочной версии для отладки и версии выпуска для окончательного выпуска программы.
Отладочная конфигурация программы компилируется с полной символической отладочной информацией и без оптимизации. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями.
Конфигурация выпуска для программы полностью оптимизируется и не содержит символической отладочной информации. Для управляемого кода и кода C++ отладочная информация может быть создана в виде PDB-файлов в зависимости от используемых параметров компилятора. Создание PDB-файлов может оказаться полезным, если позднее возникнет необходимость в отладке версии выпуска.
Дополнительные сведения о конфигурациях сборки см. в статье Общие сведения о конфигурациях сборки.
Изменение конфигурации сборки
Для изменения конфигурации сборки сделайте следующее.
На панели инструментов выберите либо Отладка, либо Выпуск из списка Конфигурации решения.
В меню Сборка щелкните Диспетчер конфигураций, а затем выберите Отладка или Выпуск.
Можно выбрать создание файлов символов (PDB) и отладочные данные, которые необходимо включить. Для большинства типов проектов компилятор создает файлы символов по умолчанию для отладочных и окончательных сборок, в то время как другие параметры по умолчанию отличаются по типу проекта и версии Visual Studio.
Отладчик загружает PDB-файл для исполняемого файла, только если он точно соответствует PDB-файлу, который был создан при сборке исполняемого файла (то есть это должен быть либо оригинальный PDB-файл, либо его копия). Дополнительные сведения см. в статье Почему Visual Studio требует, чтобы файлы символов отладчика точно соответствовали двоичным файлам, с которыми они были собраны?
Каждый тип проекта может иметь свой способ установки этих параметров.
В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.
В боковой области выберите Сборка > Общие.
В разделе Оптимизация кода выберите Отладка или Выпуск.
В списке Отладочные символы выберите PDB-файл, текущая платформа, PDB-файл, переносимый или Внедренный.
Компилятор создает файлы символов в той же папке, что и исполняемый файл или основной выходной файл.
В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.
В боковой области выберите Сборка (или Компилировать в Visual Basic).
В списке Конфигурация в верхней части выберите Отладка или Выпуск.
В списке Сведения об отладке (или Создать сведения об отладке в Visual Basic) выберите Полные, Только для PDB или Переносимые.
Компилятор создает файлы символов в той же папке, что и исполняемый файл или основной выходной файл.
Создание файлов символов для проекта C++
В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.
В списке Конфигурация выберите Отладка или Выпуск.
В боковой области выберите Компоновщик > Отладка, а затем выберите параметры в разделе Создать сведения об отладке.
В большинстве проектов C++ используется значение по умолчанию Создать отладочную информацию (/DEBUG) .
Дополнительные сведения о параметрах проекта для конфигурации отладки C++ см. в разделе Параметры проекта для конфигурации отладки C++.
Настройте параметры для раздела Создание файлов базы данных программы.
В большинстве проектов C++ значением по умолчанию является $(OutDir)$(TargetName).pdb , которое создает PDB-файлы в выходной папке.
Компилятор создает файлы символов в той же папке, что и исполняемый файл или основной выходной файл.
В этом руководстве показано, как опубликовать консольное приложение, чтобы его могли запускать другие пользователи. При публикации создается набор файлов, которые необходимы для запуска приложения. Чтобы развернуть файлы, скопируйте их на целевой компьютер.
Предварительные требования
Публикация приложения
Запустите Visual Studio.
Убедитесь, что в Visual Studio используется конфигурация сборки Release. При необходимости измените конфигурацию сборки на панели инструментов, указав конфигурацию Выпуск вместо конфигурации Отладка.
Щелкните проект HelloWorld (не решение HelloWorld) правой кнопкой мыши и выберите Опубликовать.
На вкладке Целевой объект на странице Публикация выберите Папка, а затем нажмите кнопку Далее.
На вкладке Определенный целевой объект на странице Публикация выберите Папка, а затем нажмите кнопку Далее.
На вкладке Расположение на странице Публикация нажмите кнопку Готово.
На вкладке Публикация в окне Публикация нажмите кнопку Опубликовать.
Проверка файлов
В следующих шагах будут рассмотрены файлы, созданные в процессе публикации.
В обозревателе решений выберите Показать все файлы.
В папке проекта разверните узел bin/Release/net5.0/publish.
Как показано на рисунке, опубликованные выходные данные включают следующие файлы:
Это версия исполняемого, зависящего от платформы файла приложения. Чтобы запустить его, введите HelloWorld.exe в командной строке. Файл зависит от операционной системы.
HelloWorld.pdb (необязателен для развертывания)
Это файл отладочных символов. Этот файл не нужно распространять вместе с приложением, но желательно сохранить его на случай, если придется выполнять отладку опубликованной версии приложения.
Запуск опубликованного приложения
В обозревателе решений щелкните папку publish правой кнопкой мыши и выберите команду Копировать полный путь.
Откройте командную строку и перейдите к папке publish. Для этого введите cd и вставьте полный путь. Пример:
Запустите приложение с помощью исполняемого файла:
Введите HelloWorld.exe и нажмите клавишу ВВОД .
В ответ на запрос введите имя и нажмите любую клавишу, чтобы выйти.
Запустите приложение с помощью команды dotnet :
Введите dotnet HelloWorld.dll и нажмите клавишу ВВОД .
В ответ на запрос введите имя и нажмите любую клавишу, чтобы выйти.
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы опубликовали консольное приложение. Далее вы создадите библиотеку классов.
В этом руководстве показано, как опубликовать консольное приложение, чтобы его могли запускать другие пользователи. При публикации создается набор файлов, которые необходимы для запуска приложения. Чтобы развернуть файлы, скопируйте их на целевой компьютер.
Предварительные требования
Публикация приложения
Запустите Visual Studio.
Убедитесь, что в Visual Studio используется конфигурация сборки Release. При необходимости измените конфигурацию сборки на панели инструментов, указав конфигурацию Выпуск вместо конфигурации Отладка.
Щелкните проект HelloWorld (не решение HelloWorld) правой кнопкой мыши и выберите Опубликовать.
На вкладке Целевой объект на странице Публикация выберите Папка, а затем нажмите кнопку Далее.
На вкладке Определенный целевой объект на странице Публикация выберите Папка, а затем нажмите кнопку Далее.
На вкладке Расположение на странице Публикация нажмите кнопку Готово.
На вкладке Публикация в окне Публикация нажмите кнопку Опубликовать.
Проверка файлов
В следующих шагах будут рассмотрены файлы, созданные в процессе публикации.
В обозревателе решений выберите Показать все файлы.
В папке проекта разверните узел bin/Release/net5.0/publish.
Как показано на рисунке, опубликованные выходные данные включают следующие файлы:
Это версия исполняемого, зависящего от платформы файла приложения. Чтобы запустить его, введите HelloWorld.exe в командной строке. Файл зависит от операционной системы.
HelloWorld.pdb (необязателен для развертывания)
Это файл отладочных символов. Этот файл не нужно распространять вместе с приложением, но желательно сохранить его на случай, если придется выполнять отладку опубликованной версии приложения.
Запуск опубликованного приложения
В обозревателе решений щелкните папку publish правой кнопкой мыши и выберите команду Копировать полный путь.
Откройте командную строку и перейдите к папке publish. Для этого введите cd и вставьте полный путь. Пример:
Запустите приложение с помощью исполняемого файла:
Введите HelloWorld.exe и нажмите клавишу ВВОД .
В ответ на запрос введите имя и нажмите любую клавишу, чтобы выйти.
Запустите приложение с помощью команды dotnet :
Введите dotnet HelloWorld.dll и нажмите клавишу ВВОД .
В ответ на запрос введите имя и нажмите любую клавишу, чтобы выйти.
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы опубликовали консольное приложение. Далее вы создадите библиотеку классов.
Visual Studio projects have separate release and debug configurations for your program. You build the debug version for debugging and the release version for the final release distribution.
In debug configuration, your program compiles with full symbolic debug information and no optimization. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex.
The release configuration of your program has no symbolic debug information and is fully optimized. For managed code and C++ code, debug information can be generated in .pdb files, depending on the compiler options that are used. Creating .pdb files can be useful if you later have to debug your release version.
For more information about build configurations, see Understand build configurations.
You can change the build configuration from the Build menu, from the toolbar, or in the project's property pages. Project property pages are language-specific. The procedure below shows how to change the build configuration from the menu and the toolbar. For more information about how to change the build configuration in projects in different languages, see the See also section below.
Change the build configuration
To change the build configuration, either:
On the toolbar, choose either Debug or Release from the Solution Configurations list.
From the Build menu, select Configuration Manager, then select Debug or Release.
You can choose to generate symbol (.pdb) files and what debug information to include. For most project types, the compiler generates symbol files by default for debug and release builds, while other default settings differ by project type and Visual Studio version.
The debugger will load only a .pdb file for an executable file that exactly matches the .pdb file that was created when the executable was built (that is, the .pdb must be the original or a copy of the original .pdb file). For more information, see Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?.
Each project type may have a different way of setting these options.
In Solution Explorer, right-click the project and choose Properties.
In the side pane, choose Build > General.
In the Optimize code section, choose Debug or Release.
In the Debug symbols list, choose PDB file, current platform, PBD file, portable, or Embedded.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file.
In Solution Explorer, right-click the project and choose Properties.
In the side pane, choose Build (or Compile in Visual Basic).
In the Configuration list at the top, choose Debug or Release.
Select the Advanced button (or the Advanced Compile Options button in Visual Basic).
In the Debugging information list (or the Generate debug info list in Visual Basic), choose Full, Pdb-only, or Portable.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file.
Generate symbol files for a C++ project
In Solution Explorer, right-click the project and choose Properties.
In the Configuration list, choose Debug or Release.
In the side pane, choose Linker > Debugging, then select options for Generate Debug Info.
In most C++ projects, the default value is Generate Debug Information (/DEBUG).
For detailed information on project settings for debug configurations in C++, see Project settings for a C++ debug configuration.
Configure options for Generate Program Database Files.
In most C++ projects, the default value is $(OutDir)$(TargetName).pdb , which generates .pdb files in the output folder.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
8 contributors
Users who have contributed to this file
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Set debug and release configurations in Visual Studio. You build the debug version for debugging and the release version for the final release distribution.
Set debug and release configurations in Visual Studio
Visual Studio projects have separate release and debug configurations for your program. You build the debug version for debugging and the release version for the final release distribution.
In debug configuration, your program compiles with full symbolic debug information and no optimization. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex.
The release configuration of your program has no symbolic debug information and is fully optimized. For managed code and C++ code, debug information can be generated in .pdb files, depending on the compiler options that are used. Creating .pdb files can be useful if you later have to debug your release version.
For more information about build configurations, see Understand build configurations.
You can change the build configuration from the Build menu, from the toolbar, or in the project's property pages. Project property pages are language-specific. The procedure below shows how to change the build configuration from the menu and the toolbar. For more information about how to change the build configuration in projects in different languages, see the See also section below.
Change the build configuration
To change the build configuration, either:
On the toolbar, choose either Debug or Release from the Solution Configurations list.
From the Build menu, select Configuration Manager, then select Debug or Release.
You can choose to generate symbol (.pdb) files and what debug information to include. For most project types, the compiler generates symbol files by default for debug and release builds, while other default settings differ by project type and Visual Studio version.
[!IMPORTANT] The debugger will load only a .pdb file for an executable file that exactly matches the .pdb file that was created when the executable was built (that is, the .pdb must be the original or a copy of the original .pdb file). For more information, see Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?.
Each project type may have a different way of setting these options.
In Solution Explorer, right-click the project and choose Properties.
In the side pane, choose Build > General.
In the Optimize code section, choose Debug or Release.
In the Debug symbols list, choose PDB file, current platform, PBD file, portable, or Embedded.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file. . moniker-end
In Solution Explorer, right-click the project and choose Properties.
In the side pane, choose Build (or Compile in Visual Basic).
In the Configuration list at the top, choose Debug or Release.
Select the Advanced button (or the Advanced Compile Options button in Visual Basic).
In the Debugging information list (or the Generate debug info list in Visual Basic), choose Full, Pdb-only, or Portable.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file.
Generate symbol files for a C++ project
In Solution Explorer, right-click the project and choose Properties.
In the Configuration list, choose Debug or Release.
In the side pane, choose Linker > Debugging, then select options for Generate Debug Info.
In most C++ projects, the default value is Generate Debug Information (/DEBUG).
For detailed information on project settings for debug configurations in C++, see Project settings for a C++ debug configuration.
Configure options for Generate Program Database Files.
In most C++ projects, the default value is $(OutDir)$(TargetName).pdb , which generates .pdb files in the output folder.
Build your project.
The compiler creates the symbol file(s) in the same folder as the executable or the main output file.
Читайте также: