Как релизнуть программу visual studio
В наше время open source проекты все популярнее. На площадках открытых проектов, например, на github можно найти множество полезных программ, но они не всегда имеют исполняемые файлы ("exe"), поэтому я постараюсь рассказать о том, как можно собрать самостоятельно C/C++ программу, из исходников, написанную на Microsoft Visual Studio.
Первым делом нам необходимо загрузить онлайн установщик Microsoft Visual Studio, с официального сайта. Для компиляции С/С++ проектов нет необходимости во всех пакетах и можно выбрать только те, которые нам необходимы.
Установщик загрузит необходимые пакеты из интернета и установит их.
После установки Visual Studio можно убедиться, что всё работает создав тестовый проект и скомпилировав его. Для этого нажмите в меню "Файл" → "Создать" → "Проект. "
После чего появится диалог выбора типа проекта, где можно выбрать:
- Консольное приложение;
- Классическое приложение;
- Библиотеку динамической компоновки (dll);
- Статическую библиотеку;
В нашем случае для быстрой проверки подойдет консольное приложение, выбираем название и папку проекта , после чего жмём кнопку "ОК" и создается наша программа.
После этого остается остается лишь скомпилировать её, для этого нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".
Далее наш проект скомпилируется и в папке проекта появится наш тестовый исполняемый файл ("exe").
Если всё работает как надо, то можно приступать к сборке какого-нибудь другого открытого проекта с github или другого хостинга проектов.
Первым делом нам нужно загрузить исходники проекта. На площадке github это делается довольно просто, жмем на кнопку "Code" и "Download ZIP". После чего нужно распаковать его и можно приступать к сборке.
Ищем файл с расширением ".vcxproj" и запускаем его. Перед нами появится диалог в котором нам предложат обновить SDK проекта (набор библиотек для разработки, которые Microsoft периодически обновляет) и набор инструментов, жмём обновить.
Теперь наш проект можно собрать, но до сборки необходимо выбрать разрядность проекта (например, для 32 битной системы или 64 битной), а также тип сборки (отладочный режим - debug или release).
Выбираем 64 битную систему и тип сборки релиз, после чего компилируем проект. Как и ранее нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".
Некоторые проектам требуется вручную изменить SDK и набор инструментов, на установленный у вас, для этого идём в свойства проекта, выбираем сверху типа сборки и разрядность системы и уже там изменяем SDK и набор инструментов. В выпадающем меню появляются установленные у нас версии, выбираем их и нажимаем "ОК". После чего наш проект скомпилируется.
Бывает, что проект использует сторонние библиотеки, для этого их нужно загрузить отдельно и положить в папку. Узнать путь или изменить его можно в свойстве проекта, в разделе "С/C++" → "Общие" → "Дополнительные каталоги включаемых файлов".
Бывает, что SDK или набор инструментов, в свойстве проекта не изменяется в диалоге, чтобы изменить их нужно записать номер SDK, закрыть Visual Studio и вручную, блокнотом изменить этот номер в файле проекта ".vcxproj".
При возникновении других проблем можно попробовать их загуглить, возможно, что кто-то уже сталкивался с ними и решил их.
Салют!
Уже долгое время бьюсь над проблемой, когда созданный на одном компьютере проект не работает на другом. Все длл я собрал в папку с программой, но дело в том, что эти самые длл ищутся сначала в системных папках, и, если там найдена таковая, используют ее. А версии длл'ек часто различаются. Нет ли способа каким-либо образом вручную указать, какие именно длл и откуда их необходимо проверять в первую очередь?
В частности, с переносом с win7 на win7 вроде разобрался (в настройках режим \MT поставил, и на парочке проверенных это работает), но вот при попытке запустить на XP уже возникают проблемы (хотя это как раз таки самый актуальный вопрос).
P.s.
1. Хотелось бы обойтись без установки redist на этом компе;
2. Недавно встретил такую программу, как ILMerge, для сборки exe и всех длл'ек в один файл, но походу она конкретно в этом случае не подходит (проверено). Может, есть какие-либо аналоги именно для программы, написанной на VS?
Открытие проекта в более старой версии Visual Studio
Народ, помогите пожалуйста. Делал проект в VS 2012 и не могу открыть его в 2010. Как бы решить эту.
Visual Studio 2010 (создание проекта)
Кто пользовался Microsoft Visual Studio 2010. Кто там создавал MFC Application? У меня такая.
Visual studio 2013 и создание проекта
При попытке создать новый образ на языке си (консольное окно) visual выдает ошибку типа "невозможно.
Создание нового проекта в Visual Studio
Не знаю в какую ветку разместить. Помню, когда учился, мы работали в Visual Studio и я создавал.
Решение
Первое, в чем необходимо убедиться - что программа не использует функции, которые могут
отсутствовать на целевых версиях Windows. Например, InitializeCriticalSectionEx поддерживается,
начиная с Windows Vista, а CreateFile2 вообще есть только на Windows 8 и Windows Server 2012.
Один из способов достичь этого - задавать целевые версии самому, через макроопределения.
Следующий фрагмент разрешает включать из стандартных заголовков SDK только те объявления,
которые имеют смысл для Windows XP (0x0501 - это номер версии NT для Windows XP (5.1), а
0x0600 - это версия Internet Explorer для этой системы, в данном случае шестая):
Это не панацея, но решение 90% проблем данного класса. Хотя некоторые все равно останутся.
Например exe, собранный в Visual C++ 2010, имеет зависимость от функций EncodePointer и
DecodePointer, и поэтому не запустится на Windows Server 2003 RTM (который без R2 и без
сервис-пака), так как на данной системе эти функции отсутствуют. А вот Visual C++ 2008
такой проблемы не имел.
Бывает, что программе, если она запускается на новых системах, нужны некоторые новые
функции, в этом случае следует определять номер версии Windows (GetVersionEx) и
загружать необходимые dll динамически - LoadLibrary/GetProcAddress.
При этом следует учитывать, что программа может быть запущена в режиме совместимости.
Второе - проверить, что программа не имеет зависимостей от dll, которые могут отсутствовать
на целевых системах. Распостраненный случай - отсутствие нужной версии Visual C++ Runtime.
В Visual C++ 2008 рантайм был сделан как SxS-сборки и его нужно было либо включать в инстяллятор
программы, как Merge Module или vcredist.exe, либо делать в каталоге с установленной программой
дополнительную подпапку со специальным именем и помещать сборку туда. В Visual C++ 2010 решение
проблемы упростили и рантайм (msvcr100.dll/msvcp100.dll) теперь подключается, как обычная dll,
без манифестов и прочих сложностей. Хотя вы можете по-прежнему включать в инсталлятор программы
Visual C++ 2010 Redistributable, он просто скопирует файлы рантайма в папку Windows\system32.
Ключ /MT компилятора тоже может помочь, в этом случае рантайм подключается статически и
зависимостей от msvcr100.dll/msvcp100.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.
Убедитесь, что в 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 имеют отдельные конфигурации выпуска и отладки для вашей программы. Производится построение отладочной версии для отладки и версии выпуска для окончательного выпуска программы.
Отладочная конфигурация программы компилируется с полной символической отладочной информацией и без оптимизации. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями.
Конфигурация выпуска для программы полностью оптимизируется и не содержит символической отладочной информации. Для управляемого кода и кода 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. Вы создадите настраиваемую конфигурацию сборки, скроете определенные предупреждения и расширите выходные данные сборки для примера приложения.
Установите пример приложения
Создание настраиваемой конфигурации сборки
При создании решения конфигурации отладочной сборки и сборки выпуска и их целевые платформы по умолчанию определяются для решения автоматически. Затем вы можете настроить эти конфигурации или создать собственные. Конфигурации указывают тип сборки. Целевые платформы указывают операционную систему, на которое ориентировано приложение для этой конфигурации. См. дополнительные сведения о конфигурациях сборки, платформах сборки и конфигурациях отладки и выпуска проекта.
Конфигурации и параметры платформы можно изменять или создавать с помощью диалогового окна Диспетчер конфигураций. В этой процедуре вы создадите конфигурацию сборки для тестирования.
Создание конфигурации сборки
Откройте диалоговое окно Диспетчер конфигураций.
В списке Активная конфигурация решения выберите .
В диалоговом окне Создание конфигурации решения введите для новой конфигурации имя Test , скопируйте параметры из существующей конфигурации Отладка и нажмите кнопку ОК.
В списке Активная платформа решения выберите .
В диалоговом окне Создание платформы решения выберите x64 и не копируйте параметры из платформы x86.
Активная конфигурация решения была изменена на Тест, а для активной платформы решения задано значение x64.
Активную конфигурацию решения можно быстро проверить или изменить с помощью списка Конфигурации решения на панели инструментов Стандартная.
создание приложения;
Далее вам предстоит создать решение с помощью настраиваемой конфигурации сборки.
Выполните сборку решения.
В строке меню последовательно выберите Сборка > Собрать решение (или нажмите CTRL+SHIFT+B).
Окно Вывод отображает результат сборки. Сборка успешно завершена.
Скрытие предупреждений компилятора
Далее мы добавим код, который приводит к созданию предупреждения компилятором.
В проекте Visual Basic откройте файл ExpenseReportPage.xaml.vb. В пользовательском конструкторе Public Sub New. добавьте следующий код: Dim i .
Окно Вывод отображает результат сборки. Сборка была выполнена успешно, но были созданы предупреждения:
Вы можете временно скрыть некоторые предупреждения во время сборки, чтобы они не засоряли выходные данные сборки.
В обозревателе решений выберите узел проекта верхнего уровня.
Открывается Конструктор проектов.
Выберите страницу Сборка и затем в поле Отключить предупреждения укажите номер предупреждения 0168.
Окно Вывод отображает только сводные данные о сборке.
Отключение всех предупреждений сборки в Visual Basic
В обозревателе решений выберите узел проекта верхнего уровня.
Открывается Конструктор проектов.
На странице Компиляция установите флажок Выключить все предупреждения.
Окно Вывод отображает только сводные данные о сборке.
Отображение дополнительных сведений о сборке в окне вывода
Вы можете изменить объем информации, отображаемый о процессе сборки в окне Вывод. В общем случае задан минимальный уровень детализации сборки, при котором в окне Вывод отображается только сводка по процессу сборки вместе с высокоприоритетными предупреждениями или ошибками. Чтобы отобразить дополнительные сведения о сборке, см. раздел Диалоговое окно "Параметры", "Проекты и решения", "Сборка и запуск".
При отображении дополнительных сведений сборка будет занимать больше времени.
Изменение объема сведений в окне вывода
Откройте диалоговое окно Параметры.
Выберите категорию Проекты и решения и затем страницу Сборка и запуск.
В строке меню выберите Сборка > Очистить решение.
Выполните сборку решения и просмотрите сведения в окне Вывод.
Сведения о сборке включают в себя время запуска сборки (находится в начале) и порядок обработки файлов. Они также включают фактический синтаксис компилятора, запускаемый Visual Studio при сборке.
В сборке Visual Basic параметр /nowarn не включает в себя определенные исключаемые предупреждения, поэтому предупреждения не отображаются.
В окне Вывод можно искать содержимое, отобразив диалоговое окно Найти нажатием клавиш CTRL+F.
Создание сборки выпуска
Вы можете создать версию примера приложения, оптимизированную для поставки. Для сборки выпуска вы указываете, что исполняемый файл копируется в общую сетевую папку перед запуском сборки.
Указание сборки выпуска для Visual Basic
Открывается Конструктор проектов.
Откройте вкладку Компиляция.
В списке Конфигурация выберите Выпуск.
В списке Платформа выберите x86.
В поле Выходной путь сборки укажите сетевой путь.
Например, так: \\myserver\builds .
Открывается Конструктор проектов.
Перейдите на страницу Сборка.
В списке Конфигурация выберите Выпуск.
В списке Платформа выберите x86.
В поле Путь для создаваемых файлов укажите сетевой путь.
Например, можно указать \\myserver\builds .
На стандартной панели инструментов выберите в качестве конфигураций решения Выпуск, а в качестве платформ решения — x86.
Исполняемый файл копируется в указанный сетевой путь. Путем к нему будет \\myserver\builds\\FileName.exe .
Читайте также: