Как распространять приложения C # на компьютеры с неизвестной версией .Net? - PullRequest
5 голосов
/ 21 июня 2010

Я написал небольшое приложение, которое мне нужно распространять на более чем 700 компьютеров, проблема в том, что на компьютерах может работать любая версия Windows (хотя, скорее всего, XP или лучше) с любой версией .Net Framework, установленной с подключением к Интернету.все от OC3 до коммутируемого доступа.

Я рассматривал возможность объединения .Net с моим приложением, но установщик .net по крайней мере 39 МБ, и это буквально заняло бы часы для кого-то с dialup.

Так что естьКак я могу либо связать конкретные библиотеки DLL, которые нужны приложению, либо преобразовать все это в собственный код?

Спасибо --Mike

Ответы [ 5 ]

11 голосов
/ 21 июня 2010

Используйте установщик.

Microsoft предоставляет базовое решение, позволяющее проверить зависимости (и установить их, если они отсутствуют), чтобы убедиться, что компьютер, на котором развертывается приложение, соответствует минимальным требованиям Framework (изависимости) для вашего приложения.

Если вам нужно что-то более сложное, вы можете использовать что-то вроде Nullsoft Scriptable Install System , InstallAware или InstallShield.

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

Если вы хотите удалить зависимость от .NET Framework, вам придется переписать ваше приложение во что-то, что компилируетсяв нативный код (даже NGEN не будет работать без установленной платформы).

1 голос
/ 21 июня 2010

Это можно сделать, но это не простой или дешевый способ.

Например, см. http://www.remotesoft.com/

0 голосов
/ 01 июля 2010

Не используйте .NET. Если у вас нет контроля над средой, вам нужно широкое распространение и вы не хотите загружать 30 МБ, то вы почти застряли с использованием нативного кода. Ваша лучшая ставка была бы C ++.

В качестве альтернативы, как другие предлагали, вы можете попробовать использовать что-то вроде Remotesoft.

0 голосов
/ 21 июня 2010

С Википедия (не абсолютный авторитет, но обычно надежный в подобных вещах):

В Windows Vista включена версия 3.0 .NET Framework.

Так что в Windows 7 это тоже будет включено.

Следовательно, вам действительно нужно беспокоиться только о своих клиентах XP.

Мне недавно пришлось переустанавливать Windows XP, и к тому времени, когда я получил SP3 и все последующие исправления, у меня также был установлен .NET 3.5. Хотя, поскольку я также устанавливал Visual Studio, я не могу дать вам 100% -ную гарантию того, что у всех будет установлена ​​необходимая версия .NET, но это будет значительная доля, так что вы можете беспокоиться излишне.

0 голосов
/ 21 июня 2010

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

Действительно, если вы абсолютно обеспокоены тем, что люди загружают часть фреймворка, лучше всего не использовать его.Перед тем, как переписать приложение в нативный код, я бы действительно посмотрел на вашу аудиторию, чтобы увидеть, насколько вероятно, что у них его нет, и какова их скорость соединения.

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

...