Как я распределяю приложения C# компьютерам с неизвестной версией .NET?

Я записал небольшое приложение, которое я должен распределить 700 + компьютеры, при этом проблема состоит в том, что компьютеры могут выполнять любую версию Windows (хотя наиболее вероятный XP или лучше) с любой версией платформы .NET, установленной с интернет-соединениями все от OC3 до коммутируемого доступа.

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

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

Спасибо - Mike

5
задан edude05 21 June 2010 в 15:31
поделиться

5 ответов

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

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

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

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

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

11
ответ дан 18 December 2019 в 16:36
поделиться

Это возможно, но нелегко или дешево.

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

1
ответ дан 18 December 2019 в 16:36
поделиться

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

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

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

0
ответ дан 18 December 2019 в 16:36
поделиться

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

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

Значит, Windows 7 также будет включать ее.

Таким образом, вам стоит беспокоиться только о клиентах XP.

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

0
ответ дан 18 December 2019 в 16:36
поделиться

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

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

0
ответ дан 18 December 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: