Как я могу развернуть приложение C #, если у пользователей не установлен .NET? - PullRequest
8 голосов
/ 27 мая 2011

У меня есть программа на C #, которую я хочу сделать доступной для моих пользователей, но проблема в том, что для нее требуется .NET Framework версии 4.0. Это проблема, потому что она была выпущена довольно недавно (апрель 2010 г.), и у многих, вероятно, ее нет. Что еще хуже, загрузка и установка фреймворка занимает некоторое время (~ 10 минут).

Можно ли каким-то образом установить только часть нужной мне платформы? Если это невозможно, могу ли я скомпилировать свой код в собственный двоичный файл для конкретных систем

например. 32-разрядная версия x86, 64-разрядная версия x86 и т. д.

Я смотрел на компанию под названием 'spoon' http://spoon.net/, но похоже, что она просто эмулирует приложения на сервере (вроде Citrix). Что я могу сделать, чтобы решить эту дилемму?

Ответы [ 3 ]

21 голосов
/ 27 мая 2011

Любой, кто хочет запустить вашу программу, должен установить соответствующую версию .NET Framework.Там нет никакого способа обойти это.Честно говоря, меня удивляет, как часто задают этот вопрос.Вы не можете скомпилировать код .NET до любого вида «двоичного кода», и вы не можете распространять только те части платформы, которые вам нужны.Если все это было важно для вас, вы должны были вначале выбрать другую платформу разработки.

Единственный вариант - это связать .NET Framework с установщиком вашего приложения.Чтобы сделать это проще для ваших клиентов, используйте Visual Studio для создания проекта установки, который автоматически установит .NET FW, если у него его еще нет, а затем установит ваше приложение, и все это за один шаг.

Visual Studio имеет встроенную поддержку для создания такого проекта установки, и большая часть грязной работы выполняется за вас.Файл -> Новый проект -> Другие типы проектов -> Настройка и развертывание -> Установщик Visual Studio.Затем выберите «Setup Project» или «Setup Wizard» и следуйте инструкциям.

Единственное, что нужно иметь в виду, так как вы разрабатывали для .NET 4.0, это две версииэта структура: полная версия и «Профиль клиента».Профиль клиента - это попытка сделать именно так, как вы упомянули, и установить только те части платформы, которые используются типичным приложением.Вы должны сначала понять, что это вариант развертывания для вас.Если ваша программа использует классы, которых нет в профиле клиента, вам необходимо установить полную версию.В противном случае вы можете рассмотреть возможность установки профиля клиента, который используется по умолчанию для всех новых проектов, нацеленных на .NET 4.0 в VS 2010. Проверьте настройки «Target Framework» для своего приложения в разделе «Свойства проекта».Если он не настроен на Client Profile, попробуйте изменить его и посмотреть, будет ли он компилироватьсяЭто самый быстрый способ узнать, доступен ли вам этот вариант развертывания.Но разница между размерами этих платформ составляет всего лишь около 15%, поэтому если развернуть полную версию не так уж и сложно,

В любом случае, проект установки автоматически определит иустановите правильную версию для вашего приложения.Определенно не заставляйте пользователя загружать и запускать установщик .NET отдельно.Используйте проект установки и сделайте это для них автоматически.Если у вас нет VS или вы не хотите использовать тот, который он предоставляет, изучите альтернативы, такие как Inno Setup , которые также поддерживают развертывание и установку среды выполнения .NET с приложением.

2 голосов
/ 27 мая 2011

Во многих случаях вам не нужен весь .NET Framework 4.0, и вы можете использовать гораздо меньший .NET Framework Client Profile . Затем вы можете использовать программу установки, чтобы связать программу установки профиля клиента с вашим приложением в одном развертывании.

Вы не можете запустить приложение .NET без фреймворка. Если это проблема развертывания для ваших клиентов, вам следует рассмотреть либо установщик Click-Once (автоматическая установка и обновление через Интернет), либо перенос приложения в Silverlight.

1 голос
/ 23 мая 2019

Для полноты картины в настоящее время существует также возможность развертывания .NET Core Автономные развертывания (SCD) в настоящее время.При создании автономного развертывания инструменты .NET Core автоматически включают последнюю обслуживаемую среду выполнения версии .NET Core, на которую нацелено ваше приложение.

Развертывание автономного развертывания имеет два основных преимущества:

  • Вы единолично управляете версией .NET Core, развернутой вместе с вашим приложением..NET Core может обслуживать только вы.

  • Вы можете быть уверены, что целевая система может запускать ваше приложение .NET Core, поскольку вы предоставляете версию .NET Core, котораяон будет работать.

Вот небольшая инструкция от Скотта Хансельмана.

...