Поделиться через


Миграция из .NET Framework 1.1

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

Перенацеливание или повторная компиляция

Есть два способа запустить приложение, скомпилированное с использованием .NET Framework 1.1, в Windows 7 или более поздней версии операционной системы Windows:

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

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

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

  • критические изменения, внесенные в .NET Framework начиная с версии .NET Framework 1.1;

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

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

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

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

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

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

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

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

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

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