Sdílet prostřednictvím


Migrace z rozhraní .NET Framework 1.1, 2.0 a 3.5 na .NET Framework 4

Windows už nepodporuje rozhraní .NET Framework 1.1 a 2.0. V důsledku toho se aplikace, které cílí na starší verze rozhraní .NET Framework, nespustí bez explicitní instalace rozhraní .NET Framework 3.5. Doporučuje se ale upgradovat aplikaci na .NET Framework 4. Tento článek popisuje kroky potřebné ke spuštění aplikace, která cílí na starou verzi rozhraní .NET Framework.

Změňte cílení nebo přeložte znovu.

Existují dva způsoby, jak získat aplikaci, která byla zkompilována pomocí rozhraní .NET Framework 1.1 pro spuštění ve Windows 7 nebo novějším operačním systému Windows:

  • Nasměrujte aplikaci tak, aby běžela v rozhraní .NET Framework 4 a novějších verzích.

    Změna cílení vyžaduje, abyste do konfiguračního souboru aplikace přidali <podporovaný elementRuntime> , který umožňuje spuštění v rozhraní .NET Framework 4 a novějších verzích.

    Konfigurační soubor aplikace je soubor XML, který je ve stejném adresáři a má stejný název souboru jako aplikace, ale s příponou .config . Například pro aplikaci s názvem MyExecutable.exemá konfigurační soubor aplikace název MyExecutable.exe.config.

    Takový konfigurační soubor má následující formu:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • Překompilujte aplikaci pomocí kompilátoru, který cílí na rozhraní .NET Framework 4 nebo novější verzi. Pokud jste původně k vývoji a kompilaci řešení použili Visual Studio 2003, můžete řešení otevřít v sadě Visual Studio 2010 (a případně i novějších verzích) a pomocí dialogového okna Kompatibilita projektu převést řešení a soubory projektu z formátů používaných sadou Visual Studio 2003 do formátu Microsoft Build Engine (MSBuild).

    Bez ohledu na to, jestli dáváte přednost překompilování nebo změně cílení aplikace, musíte určit, zda je vaše aplikace ovlivněna všemi změnami zavedenými v novějších verzích rozhraní .NET Framework. Tyto změny mají dva druhy:

  • Rozbíjející změny, ke kterým došlo mezi rozhraním .NET Framework 1.1 a novějšími verzemi rozhraní .NET Framework.

  • Typy a členy typů, které byly mezi verzí 1.1 a novějšími verzemi rozhraní .NET Framework označeny jako zastaralé nebo nepodporované.

Ať už aplikaci retargetujete nebo rekompilujete, měli byste zkontrolovat zásadní změny i zastaralé typy a členy pro každou verzi rozhraní .NET Framework, která byla vydána po rozhraní .NET Framework 1.1.

Zásadní změny

Když dojde k zásadní změně v závislosti na konkrétní změně, může být alternativní řešení dostupné pro retargetované i rekompilované aplikace. V některých případech můžete do elementu runtime< konfiguračního souboru aplikace přidat podřízený prvek>, který obnoví předchozí chování. Následující konfigurační soubor například obnoví chování řazení a porovnání řetězců použité v rozhraní .NET Framework 1.1 a dá se použít buď s retargetovanou nebo rekompilovanou aplikací.

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

V některých případech ale možná budete muset upravit zdrojový kód a aplikaci znovu zkompilovat.

Pokud chcete posoudit dopad možných zásadních změn ve vaší aplikaci, musíte zkontrolovat následující seznamy změn:

Zastaralé typy a členy

Dopad zastaralých typů a členů se pro retargetované aplikace a rekompilované aplikace poněkud liší. Použití zastaralých typů a členů nebude mít vliv na retargetovanou aplikaci, pokud nebyl ze sestavení fyzicky odebrán zastaralý typ nebo člen. Překompilování aplikace, která používá zastaralé typy nebo členy, obvykle vede k upozornění kompilátoru místo chyby kompilátoru. V některých případech však vytvoří chybu kompilátoru a kód, který používá zastaralý typ nebo člen, se úspěšně nekompiluje. V takovém případě musíte před opětovnou kompilací aplikace přepsat zdrojový kód, který volá zastaralý typ nebo člen. Další informace o zastaralých typech a členech viz Co je zastaralé v knihovně tříd.

Pokud chcete posoudit dopad typů a členů, které byly od vydání rozhraní .NET Framework 2.0 SP1 zastaralé, přečtěte si téma Co je zastaralé v knihovně tříd. Projděte si seznamy zastaralých typů a členů pro rozhraní .NET Framework 2.0 SP1, .NET Framework 3.5 a .NET Framework 4.