Create a standalone exe file in Visual Studio 2019
I would like to create an exe file from my WPF project which can work without other project files and which can be ran on different computers. Currently, I’m using the Publish function in Build > Publish ProjectName, with these options:
Profile name: FolderProfile
Delete existing files: false
Configuration: Release | Any Cpu
Target framework: net5.0-windows
Deployment mode: Framework-dependent
Target runtime: Portable
Target Location: \bin\Release\net5.0-windows\publish\
Even if successfully published, I found various files in the target location and when I copied the exe in a different folder, externally to the project folder, it didn’t work and no window appeared.
Как создать exe файл в visual studio 2019 c
Лучший отвечающий
Вопрос
Все перепробовал и пересобирать решение и проект, комплируется код исключительно в DLL.
Я так полагаю что студия думает будто я буду самолично эту библиотеку вызывать через командную строку чтобы ей воспользоваться или что.
Написал простенькую программу типа Hello World.
При компиляции получаю вот это
1>—— Перестроение всех файлов начато: проект: FirstProgramm, Конфигурация: Debug x64 ——
1>FirstProgramm -> C:\Users\Юлиан Дель-Кампо\source\repos\Hello world\bin\x64\Debug\netcoreapp2.1\FirstProgramm.dll
========== Перестроение всех проектов: успешно: 1, с ошибками: 0, пропущено: 0 ==========
Что делать, как получить ексешник?
Ответы
Да, " dotnet app.dll". Делать переход в каталог вроде не нужно, так как он прописывается в PATH.
"а люди, придумавшие такой способ старта приложения не думали каково будет конечному пользователю"
Обычно создается инсталлятор, который создает ярлык на рабочем столе или в системном меню. Пользователь просто нажимает на ярлык и не задумывается, какой именно тип файла запускается.
"раз в студии изначально отсутсвует компиляция в exe как таковая, значит либо мир с ума сходит либо я чего то не недопонимаю."
Прочитайте внимательно статью, ссылку на которую я дал. В .NET Core "компиляция" (точнее построение) — это процесс получения DLL, не привязанной к конкретной ОС. Получение исполняемых файлов, заточенных под конкретную ОС, это отдельный процесс, называемый публикацией. Он отделен от построения, так как на этапе отладки без разницы, что именно запускать; заточенные под конкретные ОС пакеты нужны только на этапе развертывания готового приложения.
Вроде это не сильно отличается от Java, где компилятор стандартно выдает кроссплатформенный JAR-файл, а для получения EXE нужны дополнительные действия?
Как в VisualStudio писать на Си
Можно по отдельности использовать текстовый редактор и компилятор, в ручном режиме компилировать и запускать программу в терминале или консоли, но намного удобнее использовать IDE или разные среды разработки. Обычно они включают встроенный текстовый редактор, который связан с компилятором, позволяя скомпилировать и запустить программу по одному клику. Также пользователю предоставляется огромное количество других дополнительных возможностей.
В нашем примере в качестве среды разработки (для программирования под Виндовс) мы будем использовать полнофункциональную и бесплатному среду VisualStudio 2019 Community, которую нашли по ссылке https://www.visualstudio.com/ru/vs/.
После загрузки и запуска VisualStudio в нем нужно отметить пункт «Разработка классических приложений на C++»:

Теперь выберите все необходимые пункты и запустите установку, нажав ОК. По завершению установке создадим первый проект. Откройте VisualStudio. На первом экране выберем тип EmptyProject для языка C++:

На втором экране в поле для имени проекта. Назовем его HelloApp. Тут же можно указать его расположение. После этого нажимаем Create.

Если в VisualStudio уже открыт какой-то проект, то можно создать новый проект для C через меню File (Файл) ->New (Создать) ->Project… (Проект) и затем повторить те же действия.
После этого VS создаст пустой проект. Теперь добавим в него текстовый файл, в котором будем набирать код. Для этого в окне SolutionExplorer (Обозреватель решений) нажмем правой кнопкой мыши на узел SourceFiles и выберем в контекстом меню: Add ->NewItem…:

Теперь откроется окно для добавления нового элемента:

Теперь надо выбрать пункт C++ File(.cpp), а внизу окна добавим имя для файла Hello.c. Обычно, исходные файлы на Си имеют расширение .с. Оно значит, что этот файл содержит исходный код на языке С, и он будет обрабатываться соответствующим компилятором.
На этом этапе изменим опции проекта. Для этого перейдем к пункту меню Project ->Properties

Для начала в свойствах проекта установим, что это будет консольное приложение: Linker->System и затем для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE), выбрав необходимый элемент в списке:

После установки данного значения нажмем на кнопку «Применить», чтобы использовались новые настройки конфигурации.
Еще в окне свойств проекта в левой части перейдем к секции С/С++ и далее к пункту Advanced:

В правой части окна для поля CompileAs укажем значение Compileas C Code (/TC). Тем самым мы говорим, чтобы исходный код по умолчанию компилировался именно как код С, а не С++. По завершению установки данной опции нажмем «Применить».
После добавления файла проект будет иметь такую структуру:

Рассмотрим эту структуру. Окно SolutionExplorer содержит в решение. В нашем примере оно называется HelloApp. Решение может содержать несколько проектов. У нас один проекты с таким же именем HelloApp. В проекте содержится ряд узлов:
- ExternalDependencies: отображает файлы, которые используются в файлах исходного кода, но не относятся к проекту
- HeaderFiles: используется для хранения заголовочных файлов с расширением .h
- ResourceFiles: используется для хранения файлов ресурсов, к примеру, изображений
- SourceFiles: хранит файлы с исходным кодом
На текущем этапе определим в файле Hello.c простейший код, который будет отвечать за вывод строки на консоль:
#include // подключаем заголовочный файл stdio.h
int main(void) // определяем функцию main
< // начало функции
printf(«Hello world! \n»); // выводим строку на консоль
return0; // выходим из функции
> // конец функции
Запустим программу. Для этого в VS выберем пункт меню Debug ->StartWithoutDebugging или нажмем на сочетание клавиш Ctrl+F5:

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

Дальше в папке Debug в проекте вы увидите скомпилированный файл exe, который можно запускать независимо от VS:
Как собирать С/С++ проекты в Microsoft 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«.
При возникновении других проблем можно попробовать их загуглить, возможно, что кто-то уже сталкивался с ними и решил их.