Вопрос

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

Спасибо, eWolf

Это было полезно?

Решение

Во -первых, программа на родном языке, такой как C ++, нет CLR.

Во -вторых, отключите манифест и избегайте связывания внешних DLL (например, STDC или MFC).

Другие советы

Что вы имеете в виду под более старыми версиями Windows?
Фреймворк .NET является частью Windows со времен Windows 2003 и .NET 1.1.
Так что, если вы нацеливаетесь на версии Windows более новой, чем Windows 2003, вы можете быть уверены, что .NET доступен.

Есть также решения, которые Автоматизация связывания/упаковки из продуктов .NET, чтобы вам не нужно было отправлять перераспределимые и т. Д.

Обновлять:
Я только что узнал, что Мононуклеоз Позволяет вам связать все время выполнения в ваш исполняемый файл.
Они называют эту функцию Пучок.
Подробнее об этом здесь.

Используйте Delphi - хотя новые версии IDE имеют некоторые странные ошибки, легко создать приложения для собственных Windows, которые не нуждаются в перераспределении. Гораздо проще в использовании, чем C ++/Win32.

Редактировать: Как отметил eWolf, ему не нужен .NET, несмотря на то, что исходный вопрос был помечен как .NET.

Короче говоря, на некоторых старых машинах, таких как Win95/98/2000, среда выполнения может не быть установлена.Поскольку вы указали .NET, я предполагаю, что вы хотите создать приложение с использованием .NET, но есть одно важное обстоятельство: вам необходимо заранее установить среду выполнения .NET, чтобы можно было выполнить приложение .NET.Это легко обойти двумя способами:

  • Установите среду выполнения .NET вручную ИЛИ
  • Используйте пользовательский сценарий установщика, который может определить, установлена ​​ли среда выполнения .NET, чтобы установить распространяемый компонент среды выполнения .NET.

Если вы говорите о собственном приложении, таком как C/C++, лучший путь (чтобы избежать зависимостей и минимизировать количество требуемых DLL) — разработать его в чистом WinAPI32, используя только стандартные DLL, которые есть на многих машинах с Windows. будет COMMCTRL.DLL, USER32.DLL, ADVAPI.DLL и это лишь некоторые из них.Конечным результатом будет исполняемый файл меньшего размера.Конечно, вы можете объединить другие DLL, статически связав их вместе, чтобы сформировать один огромный исполняемый файл.

Я рекомендую вам использовать Wtl, который является легкой структурой C ++. Это всего лишь один шаг выше API Win32, так что вы получаете маленьких бывших с небольшим количеством зависимостей. WTL требует платформы ATL, на которую вы можете статически ссылаться, что означает, что вам нужно только отправить свой EXE.

Еще одна структура, которую стоит посмотреть, - это QT. Анкет Тем не менее, это требует, чтобы вы отправили несколько DLL с вашим заявлением. QT - это фантастическая структура, и я думаю, что вы найдете его более продуктивным, чем WTL (в зависимости от потребностей вашего приложения, конечно.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top