2016-11-11 6 views
6

Я искал это, и есть ряд предыдущих ответов, но все они кажутся слишком сложными.Как развернуть консольное приложение C# в виде одного exe?

Я новичок в разработке C# и Windows в целом (предыдущий разработчик Mac).

Я написал простое консольное приложение на C#, используя версию Visual Studio Community. Мое приложение использует две сторонние библиотеки (CommandLineParser и json.NET), добавленные в мой проект с помощью NuGet из VS.

Все, что я хочу сделать, это построить мой проект как отдельный .exe-файл, который можно просто запустить из командной строки, не беспокоясь о том, что конечный пользователь должен установить множество DLL (что-то, что я не использую для работы с новым пользователем Windows). Я понимаю, что конечный пользователь должен иметь установленную платформу .NET. Есть ли идиот-доказательство руководства по созданию одного .exe-файла в моем случае использования?

Я не могу не думать, что это должна быть очень распространенная проблема.

Спасибо.

+2

Это действительно распространено. однако по умолчанию не существует решения по умолчанию. я никогда не нуждался в этом, но я знаю пакет nuget под названием [Fody.Costura] (https://github.com/Fody/Costura), который способен упаковывать ваши зависимости (dll и прочее) в качестве ресурсов в приложение. Другой возможностью будет ILMerge, который в основном делает то же самое – nozzleman

+7

Вы можете проверить это http://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable – Miguel

+0

Не знаете, какая версия vs you're с помощью. С vs 2013 вы можете использовать ограниченный выпуск installshield (бесплатно), и он отлично справляется с этим. Простой, прямой gui, прямо в vs с управляемым ui. Он будет проверять зависимости, например .net, и устанавливать их на клиенте, если это необходимо, и т. Д. Вы также можете настроить добавление двоичных файлов. В итоге у вас есть папка и setup.exe. – nocturns2

ответ

4

В качестве альтернативы, если вы хотите запустить тест AdHoc, чтобы увидеть, что это действительно работает, и сделать это относительно быстро вы можете попробовать использовать ILMerge-GUI

Ранее я пытался использовать ILMerge сам по себе. С графическим интерфейсом для меня было намного быстрее проверить, что я могу заставить все работать.

5

Вы можете объединить библиотеки с помощью ILMerge и запустить его как событие post build в Visual Studio. Это создаст один exe со всеми библиотеками. Вы найдете дополнительную информацию о ILMerge here.

Смежные вопросы