Лучший отвечающий
КАК ПОЛУЧИТЬ EXE в VISUAL STUDIO 2019

Вопрос
-
Все перепробовал и пересобирать решение и проект, комплируется код исключительно в 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 ==========
Что делать, как получить ексешник?
18 апреля 2019 г. 8:33
Ответы
-
Да, "dotnet app.dll". Делать переход в каталог вроде не нужно, так как он прописывается в PATH.
"а люди, придумавшие такой способ старта приложения не думали каково будет конечному пользователю"
Обычно создается инсталлятор, который создает ярлык на рабочем столе или в системном меню. Пользователь просто нажимает на ярлык и не задумывается, какой именно тип файла запускается.
"раз в студии изначально отсутсвует компиляция в exe как таковая, значит либо мир с ума сходит либо я чего то не недопонимаю."
Прочитайте внимательно статью, ссылку на которую я дал. В .NET Core "компиляция" (точнее построение) - это процесс получения DLL, не привязанной к конкретной ОС. Получение исполняемых файлов, заточенных под конкретную ОС, это отдельный процесс, называемый публикацией. Он отделен от построения, так как на этапе отладки без разницы, что именно запускать; заточенные под конкретные ОС пакеты нужны только на этапе развертывания готового приложения.
Вроде это не сильно отличается от Java, где компилятор стандартно выдает кроссплатформенный JAR-файл, а для получения EXE нужны дополнительные действия?
- Помечено в качестве ответа JULIANDC 19 апреля 2019 г. 3:47
18 апреля 2019 г. 18:58
Все ответы
-
"Я так полагаю что студия думает будто я буду самолично эту библиотеку вызывать через командную строку чтобы ей воспользоваться или что.... "
Вы будете смеяться, но ответ - "Да"... В .NET Core стандартный вариант - это распространение DLL, запускаемого через команду "dotnet" командной строки. Причина в том, что .NET Core работает на многих ОС, не все из которых используют формат EXE (PE) для исполняемых файлов, а способ с командной строкой универсален для всех ОС.
Чтобы сгенерировать для приложения обычный EXE, необходимо сконфигурировать проект определенным образом: https://blogs.msdn.microsoft.com/luisdem/2017/03/19/net-core-1-1-how-to-publish-a-self-contained-application/
18 апреля 2019 г. 9:41 -
Ну ладно, предположим я хочу использовать нативный метод запуска проекта, вот мне дали эту библиотеку,
что я с ней должен сделать как конечный пользователь чтобы ее запустить? простите, я новенький в Csharp знаю некоторые основы кодинга т.к. раньше увлекался java,поэтому могу спрашивать глупые и очевидные вещи...
что то типа:
0) run CMD
1)cd до директории с c файлом dotnet2)dotnet -mylib.dll
??
а люди, придумавшие такой способ старта приложения не думали каково будет конечному пользователю,
ему то зачем эти дебри с командной строкой ?
раз в студии изначально отсутсвует компиляция в exe как таковая, значит либо мир с ума сходит либо я чего то не недопонимаю.
18 апреля 2019 г. 17:27 -
Да, "dotnet app.dll". Делать переход в каталог вроде не нужно, так как он прописывается в PATH.
"а люди, придумавшие такой способ старта приложения не думали каково будет конечному пользователю"
Обычно создается инсталлятор, который создает ярлык на рабочем столе или в системном меню. Пользователь просто нажимает на ярлык и не задумывается, какой именно тип файла запускается.
"раз в студии изначально отсутсвует компиляция в exe как таковая, значит либо мир с ума сходит либо я чего то не недопонимаю."
Прочитайте внимательно статью, ссылку на которую я дал. В .NET Core "компиляция" (точнее построение) - это процесс получения DLL, не привязанной к конкретной ОС. Получение исполняемых файлов, заточенных под конкретную ОС, это отдельный процесс, называемый публикацией. Он отделен от построения, так как на этапе отладки без разницы, что именно запускать; заточенные под конкретные ОС пакеты нужны только на этапе развертывания готового приложения.
Вроде это не сильно отличается от Java, где компилятор стандартно выдает кроссплатформенный JAR-файл, а для получения EXE нужны дополнительные действия?
- Помечено в качестве ответа JULIANDC 19 апреля 2019 г. 3:47
18 апреля 2019 г. 18:58 -
Да, вполне, спасибо за развернутый ответ!)19 апреля 2019 г. 3:47