Какие языки не требуют внешних библиотек / ссылок / зависимостей? - PullRequest
0 голосов
/ 10 марта 2009

Есть быстрый проект, который мне нужно собрать для окон, которые не могут иметь внешних ссылок или зависимостей; такие приверженцы, как C, очевидны, но если вы являетесь разработчиком .NET и вам нужно очень быстро создать что-то вроде этого, какой язык / инструмент вы бы использовали?

РЕДАКТИРОВАТЬ: В конечном итоге я хочу иметь возможность просто взять exe-файл, созданный компилятором, и положить его один на компьютер с Windows и запустить приложение.

Ответы [ 10 ]

3 голосов
/ 10 марта 2009

Вы можете сделать это практически для любого языка (я исключаю очевидный C / C ++)

  • Вы можете связать среду выполнения .NET с вашим .exe и написать приложение на C #
  • Вы можете написать приложение на Python и собрать все в один .exe с помощью инструмента, подобного py2exe. Я делаю это регулярно. Можно создавать великолепные и мощные приложения с Python и PyQt, объединять все в один исполняемый файл без зависимостей и развертывать для пользователей без необходимости устанавливать что-либо еще. Исполняемый файл имеет размер несколько МБ (~ 9 с PyQt), загружается и запускается быстро.
  • 1009 * Etc. *

Более важно, какой язык / среду вы в настоящее время хорошо знаете. Сосредоточьтесь на этом, потому что инструменты существуют для всего, что вы хотите использовать.

2 голосов
/ 10 марта 2009

Если вы являетесь разработчиком .net, вы можете рассмотреть что-то вроде использования Salamander * от Remotesoft или другого аналогичного инструмента, который собирает все в один исполняемый файл (включая каркас).

Эта опция позволяет вам разрабатывать в .net, но не устанавливать .net framework в системах вашего клиента. Если вы развертываете в системах, отличных от MS, вы можете использовать инструменты развертывания Mono, чтобы выполнить то же самое бесплатно.

В общем, я бы сказал, придерживайтесь инструментов и языков, которые вы знаете. Проще создать инсталлятор для установки .net framework, чем изучать новый набор инструментов, библиотек и т. Д.

1 голос
/ 27 ноября 2016

Я думаю, что хороший универсальный ответ на этот вопрос - Free Pascal через Lazarus IDE .

Бесплатные приложения Pascal являются родными и независимыми, поддерживается много платформ. Слишком много, чтобы перечислить здесь! Free Pascal сам по себе является бесплатным компилятором с открытым исходным кодом.

Для большего удобства я настоятельно рекомендую использовать Lazarus IDE. Теперь вы даже получаете RAD IDE для кроссплатформенных приложений с графическим интерфейсом (а также консоли) со значительным набором встроенных функций, таких как поддержка баз данных. Действительно прекрасная универсальная, часто недооцененная или даже неизвестная платформа, которая создает автономные исполняемые файлы. Не слишком много таких инструментов, если подумать. Вы даже можете кросс-компилировать его, например, для компиляции приложения с графическим интерфейсом для Linux в Windows, без необходимости использования виртуальных машин.

Однажды, я бы хотел, чтобы .NET Native мог зайти так далеко, но в настоящее время он далек от возможности, и я не уверен, что Microsoft даже намерена пойти туда. Язык Google Go также хорош тем, что компилируется в нативный кроссплатформенный код, но в нем отсутствует библиотека графического интерфейса. Код Python может быть упакован в исполняемые файлы, но это своего рода ключ, а не нативный код. И так далее ...

1 голос
/ 10 марта 2009

Delphi всегда был лучшим продуктом для создания автономных .EXE-файлов для Windows. Ни один продукт Microsoft никогда не подходил к этому.

1 голос
/ 10 марта 2009

C / C ++ будет вашим языком, но не используйте какие-либо модные библиотеки, такие как MFC, MSVCRT и т. Д., Или если вы статически связываете их со своим исполняемым файлом.

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

Вот левое поле ответа ...

Tcl

в сочетании с starkits , вы можете создать простой двойной щелчок .exe без установки.

Минусом, конечно же, является то, что он будет написан на tcl.

В качестве дополнительного бонуса вы сможете тривиально перенести ваше приложение на mac или linux (или ряд других странных операционных систем)

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

Ассемблер. Ваша единственная зависимость - процессор

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

Если вы нацелены на Windows Vista .NET 3.0 предустановлена, Если вы нацелены на предустановленную Windows 7 .NET 3.5, если вы не используете никаких других библиотек, кроме тех, которые включены в эти дистрибутивы, то ваше приложение будет работать. В любом случае установка .NET не так уж и сложна, просто поставляется вместе с распространяемым.

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

Считаете ли вы .NET Framework "внешним"? Если вы придерживаетесь .NET Framework и используете C #, ваш код должен работать везде, где установлен .NET Framework соответствующей версии, и вам нужно будет только развернуть .exe и .exe.config.


Невозможно запустить программу .NET без .NET Framework. Если вам не требуется, чтобы .NET Framework уже был установлен, вы не можете использовать программу .NET. Вот что я имел в виду.


Понятия не имею, о чем идет речь, но позвольте мне еще раз попытаться уточнить. Оригинальный пост сказал:

такие стойкие, как С, очевидны, но если вы являетесь разработчиком .NET и вам нужно построить что-то вроде этого очень быстро, какой язык / инструмент вы бы использовать?

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

Но, по определению, программа .NET не может быть независимой от .NET Framework.

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

«Нет внешних ссылок» немного расплывчато. Вы говорите о решении для развертывания приложения?

Например, вы можете использовать Tcl, который поддерживает возможность создания одного исполняемого файла, который содержит как код приложения, так и виртуальную файловую систему, которая может содержать любые другие файлы, необходимые приложению. Если ваша цель - создать один файл, который можно развернуть без установки дополнительных файлов, прочитайте о «старкитах» и «старпаках».

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