Распространяемый компонент .NET 3.5 - 200 МБ? Другие варианты?

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

Я пошел скачать распространяемый пакет .NET 3.5 и обнаружил, что это почти 200 МБ!Это неприемлемо для моего приложения, потому что это должно быть быстрое и безболезненное потребительское приложение, которое быстро устанавливается и не имеет большого профиля на компьютере пользователя. Для пользователей, у которых уже установлен .NET 3.5, наши бинарные загрузки пока выполняются мгновенно. Эта 200-мегабайтная горилла увеличит размер загружаемого файла более чем в четыре раза. Есть ли какой-либо другой вариант, кроме этого распространяемого пакета, который я могу использовать, чтобы убедиться, что фреймворк находится на машине, что не выводит пользователя из нашего «быстрого и безболезненного» рабочего процесса? Наше целевое время от начала загрузки до завершения установки составляет менее двух минут. Разве это невозможно для тех, у кого еще не установлен .NET?

Ответов (6)

Решение

Это одна из печальных причин, по которым я все еще нацелен на .net 2.0, когда это возможно: /

Но людям не обязательно нужен полный пакет на 200 МБ. Существует загрузчик объемом 3 МБ, который загружает только необходимые компоненты:

Загрузчик .net 3.5 с пакетом обновления 1 (SP1)

Тем не менее, в худшем случае загрузка по-прежнему будет довольно большой. Кроме того, см. Эту статью для более подробного объяснения размера и альтернативного решения проблемы с размером.

Дополнение: отвечая на этот вопрос, Скотт Хансельман создал SmallestDotNet.com , который определит минимальную требуемую загрузку. Не меняет худшего сценария, но все же полезно знать.

Профиль клиента стал лучше (и меньше) в .NET 4 см.

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

Как только появится .NET Framework 3.5 SP1 (который должен появиться довольно скоро), появится второй вариант фреймворков, а именно «Профиль клиента», который представляет собой урезанную структуру, занимающую всего около 30 Мбайт памяти. Он не включает все пространства имен и классы полной платформы, но теоретически должен быть достаточным для большинства распространенных приложений. При необходимости его можно обновить до полной структуры (например, если обновление вашего программного обеспечения вводит новую зависимость)

Более подробную информацию см. Здесь: Блог команды BCL

Вы смотрели профиль клиента .NET Framework? Он намного меньше, чем полный распространяемый пакет, и оптимизирован для предоставления только тех функций, которые необходимы умным клиентам.

Вот хороший обзор.

Я не знаю, удержит ли это загрузку менее двух минут или нет, но это должно приблизить вас.

Для справки, .Net Framework 3.5 SP1 требуется для установки и окончательной первоначальной версии Microsoft SQL Server 2008 примерно одновременно с выпуском на этой неделе. По-прежнему сложная установка, но вы можете извлечь из нее профиль клиента. Просто не знаю, как это сделать.