Миграция с .NET Framework версии 1.1

Windows 7 не поддерживает .NET Framework 1.1. Поэтому приложения, предназначенные для .NET Framework 1.1, не будут запускаться в Windows 7 без внесения изменений. В этом разделе рассматриваются действия, которые необходимо выполнить для запуска приложения, предназначенного для .NET Framework 1.1, в операционной системе Windows 7.

Переназначение и перекомпиляция

Существует два способа получить приложение, которое было скомпилировано с использованием .NET Framework 1.1, для запуска в Windows 7.

  • Можно перенацелить приложение для запуска в платформе .NET Framework 4. Для перенацеливания необходимо добавить в файл конфигурации приложения элемент <supportedRuntime>, который позволит приложению запускаться в платформе .NET Framework 4. Такой файл конфигурации имеет следующий вид:

    <configuration> 
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • Можно перекомпилировать приложение с помощью компилятора, предназначенного для .NET Framework 4. Если для разработки и компиляции решения первоначально использовалась среда Visual Studio 2003, можно открыть решение в среде Visual Studio 2010, и мастер преобразования Visual Studio преобразует решение и файлы проекта из форматов, используемых средой Visual Studio 2003, в формат Microsoft Build Engine (MSBuild), используемый средой Visual Studio 2010.

Независимо от того, перекомпилируется ли или перенацеливается приложение, необходимо определить, затронуто ли оно какими-либо изменениями, введенными в более поздних версиях платформы .NET Framework. Эти изменения могут быть двух типов:

  • критические изменения, введенные в более поздних относительно .NET Framework 1.1 версиях платформы .NET Framework;

  • отметка типов и членов типов как нерекомендуемых или устаревших в более поздних относительно .NET Framework 1.1 версиях платформы .NET Framework.

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

Критические изменения

Когда происходит критическое изменение, обходной путь может быть доступен как для перенацеленных, так и для перекомпилированных приложений (в зависимости от конкретного изменения). В некоторых случаях для восстановления предыдущего поведения в элемент <runtime> файла конфигурации приложения можно добавить дочерний элемент. Например, следующий файл конфигурации восстанавливает режим сортировки и сравнения строк, используемый в .NET Framework 1.1, и может применяться с перенацеленным или перекомпилированным приложением.

<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

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

Чтобы оценить влияние возможных критических изменений на приложение, необходимо просмотреть следующие списки изменений.

  • В документе Breaking Changes in .NET Framework 2.0 перечислены изменения, внесенные в .NET Framework 2.0 с пакетом обновления 1 (SP1), которые могут повлиять на приложение, предназначенное для .NET Framework 1.1.

  • В документе Changes in .NET Framework 3.5 SP1 перечислены изменения, внесенные в .NET Framework 3.5 с пакетом обновления 1 (SP1), относительно .NET Framework 3.5.

  • В разделе Проблемы при миграции на .NET Framework 4 перечислены изменения, внесенные в .NET Framework 4, относительно .NET Framework 3.5 с пакетом обновления 1 (SP1).

Устаревшие типы и члены

Нерекомендуемые типы и члены несколько по-разному влияют на перенацеленные и перекомпилированные приложения. Устаревший тип или член не будет влиять на перенацеленное приложение, если он физически не удален из его сборки. При перекомпиляции приложения, в котором используются устаревшие типы или члены, обычно появляется предупреждение компилятора, а не ошибка. Однако в некоторых случаях при такой перекомпиляции возникает ошибка компилятора, и код, в котором используется устаревший тип или член, не компилируется успешно. В этом случае перед перекомпиляцией приложения необходимо переписать исходный код, в котором вызывается устаревший тип или член. Дополнительные сведения об устаревших типах и членах см. в разделе Устаревшие возможности .NET Framework.

Чтобы оценить влияние типов и членов, не рекомендованных к использованию после выпуска .NET Framework 2.0 с пакетом обновления 1 (SP1), обратитесь к разделу Устаревшие возможности .NET Framework. Просмотрите списки устаревших типов и членов для .NET Framework 2.0 с пакетом обновления 1 (SP1), .NET Framework 3.5 и .NET Framework 4.

Журнал изменений

Дата

Журнал

Причина

Сентябрь 2010

Добавлен раздел.

Улучшение информации.