.NET Framework 1.1 からの移行Migrate from the .NET Framework 1.1

Windows 7 以降のバージョンの Windows オペレーティング システムでは、.NET Framework 1.1 はサポートされません。Windows 7 and later versions of the Windows operating system do not support the .NET Framework 1.1. このため、.NET Framework 1.1 を対象とするアプリケーションは変更を行わないと、Windows 7 以降のバージョンのオペレーティング システムでは実行できません。As a result, applications that target the .NET Framework 1.1 will not run without modification on Windows 7 or later operating system versions. このトピックでは、.NET Framework 1.1 を対象とするアプリケーションを Windows 7 以降のバージョンの Windows オペレーティング システムで実行するために必要な手順について説明します。This topic discusses the steps required to run an application that targets the .NET Framework 1.1 under Windows 7 and later versions of the Windows operating system. .NET Framework 1.1 と Windows 8 の詳細については、Windows 8 以降のバージョンでの .NET Framework 1.1 アプリの実行に関する記事を参照してください。For more information about the .NET Framework 1.1 and Windows 8, see Run .NET Framework 1.1 Apps on Windows 8 and later versions.

再ターゲットまたは再コンパイルRetarget or recompile

.NET Framework 1.1 を使用してコンパイルしたアプリケーションを Windows 7 以降のバージョンの Windows オペレーティング システムで実行するには、次の 2 つの方法があります。There are two ways to get an application that was compiled using the .NET Framework 1.1 to run on Windows 7 or a later Windows operating system:

  • .NET Framework 4 以降のバージョンで動作するようにアプリケーションのターゲットを変更します。Retarget the application to run under .NET Framework 4 and later versions. 再ターゲットするには、<supportedRuntime> 要素をアプリケーションの構成ファイルに追加して .NET Framework 4 以降のバージョンで動作できるようにする必要があります。Retargeting requires that you add a <supportedRuntime> element to the application's configuration file that allows it to run under .NET Framework 4 and later versions. そのための構成ファイルの形式は次のとおりです。Such a configuration file takes the following form:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • .NET Framework 4 以降のバージョンをターゲットとするコンパイラでアプリケーションを再コンパイルします。Recompile the application with a compiler that targets the .NET Framework 4 or a later version. 最初に Visual Studio 2003 を使用してソリューションを開発およびコンパイルした場合は、ソリューションを Visual Studio 2010 で (そしておそらく以降のバージョンでも) で開くことができます。また、 [Project Compatibility](プロジェクト互換性) ダイアログ ボックスを使用して、ソリューションおよびプロジェクト ファイルを Visual Studio 2003 で使用される形式から Microsoft Build Engine (MSBuild) 形式に変換することができます。If you originally used Visual Studio 2003 to develop and compile your solution, you can open the solution in Visual Studio 2010 (and possibly later versions too) and use the Project Compatibility dialog box to convert the solution and project files from the formats used by Visual Studio 2003 to the Microsoft Build Engine (MSBuild) format.

再コンパイルまたは再ターゲットのいずれを選択するかに関係なく、アプリケーションが .NET Framework の新しいバージョンで導入された変更の影響を受けるかどうかを確認する必要があります。Regardless of whether you prefer to recompile or retarget your application, you must determine whether your application is affected by any changes introduced in later versions of the .NET Framework. 変更には次の 2 種類があります。These changes are of two kinds:

  • .NET Framework 1.1 とより新しいバージョンの .NET Framework の間で行われた破壊的変更。Breaking changes that occurred between the .NET Framework 1.1 and later versions of the .NET Framework.

  • .NET Framework 1.1 とより新しいバージョンの .NET Framework の間で非推奨または旧形式とマークされた型と型のメンバー。Types and type members that have been marked as deprecated or obsolete between the .NET Framework 1.1 and later versions of the .NET Framework.

アプリケーションを再ターゲットするか、再コンパイルするかに関係なく、.NET Framework 1.1 より後にリリースされた .NET Framework の各バージョンについては、破壊的変更と旧式の型およびメンバーを確認する必要があります。Whether you retarget your application or recompile it, you should review both the breaking changes and the obsolete types and members for each version of the .NET Framework that was released after .NET Framework 1.1.

互換性に影響する変更Breaking changes

互換性に影響する変更が行われた場合は、変更内容に応じて、アプリケーションの再ターゲットおよび再コンパイル時の回避策が提示される場合があります。When a breaking change occurs, depending on the specific change, a workaround may be available both for retargeted and recompiled applications. 場合によっては、アプリケーションの構成ファイルの <runtime> 要素に子要素を追加することで、以前の動作を復元できます。In some cases, you can add a child element to the <runtime> element of your application's configuration file to restore the previous behavior. たとえば、次の構成ファイルでは .NET Framework 1.1 で使用される文字列の並べ替えおよび比較の動作が復元され、アプリケーションの再ターゲットまたは再コンパイルのいずれにも使用できます。For example, the following configuration file restores the string sorting and comparison behavior used in the .NET Framework 1.1 and can be used either with a retargeted or a recompiled application.

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

ただし、ソース コードの変更とアプリケーションの再コンパイルが必要になる場合があります。However, in some cases, you may have to modify your source code and recompile your application.

互換性に影響する可能性がある変更点がアプリケーションに与える影響を評価するには、次の変更一覧を確認する必要があります。To assess the impact of possible breaking changes on your application, you must review the following lists of changes:

旧式の型およびメンバーObsolete types and members

非推奨の型およびメンバーの影響は、アプリケーションを再ターゲットする場合と再コンパイルする場合とでは若干異なります。The impact of deprecated types and members is somewhat different for retargeted applications and recompiled applications. 旧式の型およびメンバーを使用しても、その型およびメンバーをアセンブリから物理的に削除しない限り、再ターゲットしたアプリケーションには影響しません。The use of obsolete types and members will not affect a retargeted application unless the obsolete type or member has been physically removed from its assembly. 旧式の型およびメンバーを使用してアプリケーションを再コンパイルすると、通常はコンパイラ エラーではなく、コンパイラの警告が発生します。Recompiling an application that uses obsolete types or members usually produces a compiler warning rather than a compiler error. ただし、場合によってはコンパイラ エラーが発生し、旧式の型またはメンバーを使用したコードをコンパイルできないことがあります。However, in some cases, it produces a compiler error, and code that uses the obsolete type or member does not compile successfully. その場合は、旧式の型またはメンバーを呼び出すソース コードを変更してからアプリケーションを再コンパイルする必要があります。In this case, you must rewrite the source code that calls the obsolete type or member before you recompile your application. 旧式の型およびメンバーの詳細については、「.NET Framework クラス ライブラリの互換性のために残されている機能」を参照してください。For more information about obsolete types and members, see What's Obsolete in the Class Library.

.NET Framework 2.0 SP1 のリリース以後に非推奨になった型およびメンバーの影響を評価するには、クラス ライブラリの互換性のために残されている機能に関するページを参照してください。To assess the impact of types and members that have been deprecated since the release of the .NET Framework 2.0 SP1, see What's Obsolete in the Class Library. .NET Framework 2.0 SP1、.NET Framework 3.5、.NET Framework 4 については、旧式の型およびメンバーの一覧を確認してください。Review the lists of obsolete types and member for the .NET Framework 2.0 SP1, the .NET Framework 3.5, and the .NET Framework 4.