Подтвердить что ты не робот

Скомпилируйте автономный исполняемый файл (.exe) в Visual Studio

как я могу сделать автономный exe в Visual Studio. Простое консольное приложение, которое, я думаю, не захочет устанавливать крошечное консольное приложение. Я скомпилировал простой файл cpp с помощью командной строки visual studio. Будет ли exe работать, даже если платформа .NET не установлена? Я использовал собственный код на С++.

4b9b3361

Ответ 1

Все, что использует управляемую среду (включая все, что написано на С# и VB.NET), требует платформы .NET. Вы можете просто перераспределить ваш .EXE в этом сценарии, но им нужно будет установить соответствующую структуру, если они еще не имеют ее.

Ответ 2

В папке вашего проекта есть папка с бинами. В вашей папке bin есть 2 папки, выпуск и отладка. Для вашего полированного .exe вы хотите перейти в папку Release.

Я не совсем уверен, что если вы спросите

Ответ 3

Если я правильно вас понимаю, да, вы можете, но не под Visual Studio (из того, что я знаю). Чтобы заставить компилятор генерировать реальный автономный исполняемый файл (что означает, что вы используете С#, как и любой другой язык), вы используете программу mkbundle (поставляется с Mono). Это скомпилирует ваше приложение С# в реальный исполняемый файл зависимости.

В интернете много заблуждений. Это не разрушает цель .net-структуры, как некоторые люди, потому что как вы можете потерять будущие функции .net framework, если вы не использовали эти функции для начала? И когда вы отправляете обновления в свое приложение, это не совсем тяжелая работа, чтобы запустить его через процессор mkbundle перед созданием вашего установщика. Существует также преимущество по скорости, связанное с тем, что приложение работает на собственной скорости (потому что теперь оно является родным).

В С++ или Delphi у вас есть одна и та же система, но без среднего уровня MSIL. Поэтому, если вы используете пространство имен или исходный файл (называемый подраздел под Delphi), то он скомпилирован и включен в ваш окончательный двоичный файл. Таким образом, ваш последний двоичный файл будет больше (чтение: "Нормальный" размер для реального приложения). То же самое касается частей рамки, которые вы используете в .net, они также включены в ваше приложение. Тем не менее, интеллектуальная привязка действительно бреет значительную сумму.

Надеюсь, что это поможет!

Ответ 4

Я согласен с @Marlon. Когда вы скомпилируете свой проект С# с конфигурацией Release, вы найдете в папке "bin/Release" вашего проекта исполняемый файл вашего приложения. Это СЛЕДУЕТ работать для простого приложения.

Но если ваше приложение имеет какие-либо зависимости от какой-либо внешней dll, я предлагаю вам создать SetupProject с VisualStudio. Таким образом, мастер проекта найдет все зависимости вашего приложения и добавит их (librairies) в папку установки. Наконец, все, что вам нужно сделать, это запустить настройку на компьютере пользователя и установить программное обеспечение.

Ответ 5

У меня никогда не было проблем с развертыванием небольшого консольного приложения, сделанного в С# as-is. Единственная проблема, с которой вы можете столкнуться, - это зависимость от платформы .NET, но даже это не должно быть серьезной проблемой. Вы можете попробовать использовать версию 2.0 фреймворка, которая уже должна быть на большинстве ПК.

Используя собственный, неуправляемый С++, вы не должны иметь никаких зависимостей от платформы .NET, поэтому вы действительно должны быть в безопасности. Просто возьмите исполняемый файл и любые сопроводительные файлы (если они есть) и разверните их так, как они есть; нет необходимости устанавливать их, если вы этого не хотите.

Ответ 6

Я не думаю, что можно сделать то, что задает вопросик, чтобы избежать адского адда, объединив все файлы проекта в один .exe.

Основной проблемой является красная селедка. Возникающая проблема заключается в том, что при наличии нескольких проектов в зависимости от одной библиотеки PITA поддерживает синхронизацию библиотек. Каждый раз, когда библиотека изменяется, все .exe, которые зависят от нее и не обновляются, умрут ужасно.

Говорить людям, чтобы учиться C, поскольку один ответ был высокомерным и невежественным.