Можно ли развернуть .NET 4.0 на машине с установленным только .NET 3.5 SP1? - PullRequest
0 голосов
/ 23 ноября 2010

Я работаю над приложением WPF, для работы которого требуется .NET 4.0. Все машины на предприятии работают под управлением .NET 3.5 SP1. Можно ли развернуть приложение с его DLL-библиотеками .NET 4 без необходимости установки полной версии .NET 4 Framework на клиентские машины?

Есть две части нашей реализации, которые объединяют нас с .NET 4.0

  1. Использование пользовательского элемента управления Data Grid (это самый простой вопрос для преодоления).
  2. Использование свойства enableUnsecuredResponse для моей привязки WCF.
<bindings>
  <customBinding>
    <binding name="CadsBinding">
      <textMessageEncoding messageVersion="Soap11"/>
      <security enableUnsecuredResponse="true" authenticationMode="UserNameOverTransport" allowInsecureTransport="true">
        <secureConversationBootstrap/>
      </security>
      <httpTransport authenticationScheme="Basic"/>
    </binding>
  </customBinding>
</bindings>

Microsoft выпустила следующее оперативное исправление: Исправление, позволяющее WCF отправлять защищенные сообщения и получать незащищенные ответы, а также отправлять незащищенные сообщения и получать защищенные ответы, доступно для .NET Framework 3.5 SP1 но если я хочу развернуть это оперативное исправление на предприятии, я мог бы также сделать это для клиентского профиля .NET 4.0 и решить все мои проблемы тут же.

Мне известно об установке .NET 4.0 Client Profile. Чего я стараюсь избегать, так это того, что нужно просто отодвинуть установку фреймворка только для моего приложения.

Моя текущая мысль: Это не может быть сделано. Даже если я разверну DLL-библиотеки .NET 4, на которые есть ссылки, они все равно будут пытаться обрабатываться более старой версией CLR, которая не сможет их понять.

Ответы [ 4 ]

3 голосов
/ 23 ноября 2010

Вам понадобится .NET 4, но есть Профиль клиента

Клиентский профиль .NET Framework 4 является подмножеством .NET Framework 4, оптимизированным для клиентских приложений. Он предоставляет функциональные возможности для большинства клиентских приложений, включая функции Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF) и ClickOnce. Это ускоряет развертывание и уменьшает размер установочного пакета для приложений, нацеленных на клиентский профиль .NET Framework 4.

Это уменьшенная загружаемая и компактная версия фреймворка.

1 голос
/ 23 ноября 2010

это зависит от того, какие функции из 4.0 вы используете ... некоторые из них просто синтетический сахар, и компилятор генерирует для этого IL.Например, новое ключевое слово «dynamic» использует новую динамическую среду исполнения (DLR), которая доступна только в составе .net 4.0.Таким образом, если ваше приложение использует это, нет другого способа, кроме как установить .net Framework 4.0 на компьютере.Для меня лучшей идеей было бы установить в свойствах проекта целевую версию 3.5 (указанную в свойствах вашего проекта в Visual Studio), и если ошибок нет, вы можете следовать этим общим рекомендациям чтобы проверить, будет ли приложение работать или нет.

1 голос
/ 23 ноября 2010

Нет, невозможно развернуть приложение, скомпилированное для 4.0, на машине, которая содержит только .Net 3.5 (любая версия).Версия 4.0 среды выполнения должна быть установлена ​​на компьютере.

Однако можно использовать Visual Studio 2010 (и 2008) для компиляции сборки, нацеленной на 3.5.Затем его можно будет развернуть на машине, имеющей только структуру 3.5.Эта функция известна как мульти-таргетинг, и здесь есть ссылка на учебник по теме

1 голос
/ 23 ноября 2010

Нет.Эти библиотеки DLL зависят от сборок, зарегистрированных в GAC.Без установленного .Net Framework вы не получите эти сборки.Почему бы просто не выполнить развертывание с помощью установщика?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...