Может ли Visual Studio 2008 Standard создать один EXE-файл, для которого не требуется .NET Framework? - PullRequest
2 голосов
/ 07 ноября 2008

Это действительно вопрос для начинающих, поэтому я прошу прощения заранее.

У меня установлен Visual Studio 2008 Standard, и я хотел бы создать небольшое приложение Windows, для которого НЕ требуется .NET Framework при запуске на компьютерах VS 2008 Standard поддерживает такую ​​функцию? Любые указания о том, как этого добиться, были бы фантастическими.

Заранее спасибо.

Ответы [ 10 ]

4 голосов
/ 07 ноября 2008

Существуют сторонние компиляторы, такие как Salamander (чертовски дорого).

См. Также: Как скомпилировать приложение .NET для собственного кода?

4 голосов
/ 07 ноября 2008

Конечно, вы определенно можете это сделать. Вы должны будете написать свое приложение на C ++.

Для начала перейдите в Файл | Новый и в разделе «Типы проектов» выберите один из вариантов в Visual C ++. Для минимальных зависимостей я бы предложил один из вариантов Win32. Появятся параметры «Консольное приложение Win32» и «Проект Win32», которые приведут вас к одному и тому же мастеру, который, если щелкнуть «Настройки приложения» слева, позволяет выбрать, создавать ли консольное приложение или приложение Windows. Консольное приложение будет запускаться в консольном окне, например, cmd.exe, тогда как в Windows-приложении изначально не будет пользовательского интерфейса (вам придется создавать пользовательский интерфейс самостоятельно).

Имейте в виду, что даже если вы не зависите от среды выполнения .NET, вам все равно нужно будет иметь доступ к библиотекам CRT на машинах, на которых будет работать ваша программа. Вторично распространяемые файлы для этих файлов находятся в каталоге установки Visual Studio, который, если вы устанавливаете его в папку по умолчанию, будет C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ redist.

1 голос
/ 24 ноября 2010

У меня была такая же проблема. Вот как я решил: перейдите на вкладку «Сборка». Нажмите «Диспетчер конфигурации». На появившемся экране нажмите раскрывающееся меню «отладка» и выберите «выпуск». Нажмите «Закрыть» внизу. Повторно щелкните вкладку сборки, а затем нажмите «пересобрать решение». После завершения сохраните все и выйдите. Вернитесь в основную папку вашей программы, нажмите «[имя папки], а затем папку« release », которая была создана. Внутри будет два файла: .exe и файл« базы данных отладки программы »с именем вашего оригинала. программа на нем. Эти два файла вместе будут работать на любом компьютере, на котором не установлена ​​библиотека .NET и т. д. Он настолько близок, насколько я могу найти к автономному .exe. Надеюсь, это поможет.

1 голос
/ 07 ноября 2008

Если бы я хотел легко создать действительно автономное приложение Windows EXE, Я бы использовал Delphi . Хорошо, что я не хочу этого делать. .NET слишком полезен, и (по крайней мере, версия 2.0) уже почти везде - редко я сталкиваюсь с клиентским компьютером без уже установленного .NET, и даже если его там нет, программа установки занимает всего 23 МБ. *

В те дни, когда я работал с Visual Basic, я беспокоился о дополнительном бремени развертывания сред выполнения VB вместе с моим приложением. Это никогда не было серьезной проблемой.

0 голосов
/ 19 марта 2009

Вам не нужно развертывать Redist DLL, если вы статически связываете ваш c / c ++. Вы можете принудительно сделать это в настройках проекта, добавив "/ MT" к команде компиляции (без кавычек), если я правильно помню. Тогда он может просто отослать свой exe, и ему также не нужно будет отправлять crt dll.

Конечно, это означает, что он не будет поднимать недавно выпущенные функции в обновлениях Windows этих DLL, но я полагаю, что всегда есть компромисс.

- редактирование: Хорошо, я нашел переключатель, который добавляет этот аргумент; на странице свойств «Свойства конфигурации» -> C / C ++ -> «Генерация кода», тогда для «Runtime Library» должна быть выбрана опция «non-dll». Два / MT и / MTd (отладка).

0 голосов
/ 01 марта 2009

Единственный способ, которым я видел, чтобы кто-то получал отдельный (не требующий установки .net) exe-файл из C # или VB.net, - это использование программы, которая объединяет фреймворк (по крайней мере, используемые библиотеки) с вашим exe-файлом. И те стоят денег. Вы не найдете другого способа сделать это. Это все равно что пытаться запустить приложение Java без Java VM

0 голосов
/ 01 марта 2009

Кроме того,

Должно быть несколько недорогих (т.е. довольно дешевых) инструментов это связывает вместе DLL (и) не-сетевого приложения, например:

  1. Molebox Pro (ес 100)
  2. BitArt's Fusion (160 долларов)
  3. VB Wrap ($ 100)
  4. Пакет PE ($ 30)

Кроме того,

Существует ориентированный на защиту инструмент под названием "Themida" из www.oreans.com, что, если купить вместе с другим их инструмента под названием "XBundler For Win32 / .NET", он обещает иметь (цитировать) "DLL-файлы и файлы данных для встраивания внутри приложение ".

Themida продает за ес 200 плюс XBundler, продает за ес 120, можно получить оба за ес 320, что не так уж и дешево не слишком дорого.

EXE поклонник: -)

0 голосов
/ 07 ноября 2008

VB.Net имеет мало общего с VB6. Если вы хотите понять степень различия, см. http://vb.mvps.org/vfred/breaks.asp

0 голосов
/ 07 ноября 2008

Так что насчёт VB в Visual Studio 2008 Standard? Был ли переписан движок VB для платформы .NET?

0 голосов
/ 07 ноября 2008

VB 6 не основан на .NET Framework. VB **. NET ** is.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...