.NET Framework 4 Application Compatibility Walkthrough
.NET Framework Version 4 アプリケーションの互換性に関するチュートリアル
このチュートリアルでは、アプリケーションが .NET Framework Version 4 で正常に動作することを確認する方法について説明します。
このチュートリアルでは次の作業について説明します。
· マネージコードを使用するクライアントアプリケーションを .NET Framework 4 でテストする方法
· COM アドインを .NET Framework 4 でテストする方法
· ASP.NET サーバーベースアプリケーションを .NET Framework 4 でテストする方法
· ClickOnce アプリケーションを .NET Framework 4 でテストする方法
さらに、このチュートリアルでは、 .NET Framework の旧バージョンが .NET Framework Version 4 と共にインストールされている ( つまり、 2 つのバージョンが並列インストールされている ) 場合のアプリケーションの動作をテストする方法についても説明します。
シナリオテスト一覧表
次の表を使用して、さまざまな種類のアプリケーションに対するテストの適切なシナリオを決定できます。
|
クライアント
|
COM アドイン |
サーバー
|
ClickOnce |
||||
|
SxS |
. NET 4 |
SxS |
. NET 4 |
SxS |
. NET 4 |
SxS |
. NET 4 |
シナリオ |
1 、 2 、 3 |
1 、 5 、 6 |
1 、 4 |
1 、 4 |
1 、 7 、 8 |
1 、 7 、 8 |
1 、 9 |
1 、 9 |
説明
· SxS: .NET Framework 4 など複数バージョンの .NET Framework がインストールされています。
· . NET 4: .NET Framework 4 だけがコンピューターにインストールされています (Microsoft Windows XP を使用 ) 。
結果の評価
このチュートリアルの各シナリオの手順を実行した後、シナリオで説明されたテストが予想どおりの結果になったかどうかを評価する必要があります。一部のシナリオには、テストが成功または失敗した場合に何を行うかについての推奨事項があります。テストの結果を評価する方法に対して明確な推奨事項がシナリオに含まれていない場合は、次の指示に従ってください。
· はい、シナリオは予想どおりに実行されました。この場合は、次のシナリオに進みます ( 次のシナリオがアプリケーションに関連する場合 ) 。
· いいえ、シナリオは失敗しました。この場合は、テストしたシナリオについて記述したバグレポートを Microsoft Connect Web サイト ( http://connect.microsoft.com/ ) に送信する必要があります。バグレポートには、エラーが発生した手順、およびエラー結果も記述します。適切な場合は、次のシナリオに進みます。
並列シナリオでクライアントアプリケーションをテストする
チュートリアルのこのセクションでは、 .NET Framework の 2.0 と 4 が並列でインストールされている場合にマネージコードクライアントアプリケーションをテストする方法について説明します。
シナリオ 1: インストールのテスト
このテストでは、 .NET Framework の 2.0 と 4 がインストールされているコンピューターにアプリケーションを正常にインストールできるかどうかを検証します。
注 : アプリケーションでインストールプロセスが必要でない場合は、次のシナリオに進んでください。
1. テストを行うコンピューターに、作成したアプリケーションを使用するための .NET Framework のバージョンがインストールされていることを確認します。
2. .NET Framework Version 4 の旧バージョン ( テスト版 ) がインストールされている場合は、アンインストールを実行して、 .NET Framework 4 の最新版をインストールできるようにします。
3. .NET Framework 4 をインストールする前に、 .NET Framework 4 がインストールされていない状態でアプリケーションが予想どおりに動作することを確認します。
4. アプリケーションをアンインストールします。
5. .NET Framework Version 4 をインストールします。
6. アプリケーションをインストールします。
結果の評価
結果を評価し、次の表の指示に従います。
結果 |
次のステップ |
はい、アプリケーションは予想どおりにインストールされました。 |
次のシナリオに進みます。 |
いいえ、インストールプロセスは失敗しました。 |
1. .NET Framework 4 をコンピューターからアンインストールします。 2. アプリケーションをコンピューターにインストールします。 3. .NET Framework 4 を再インストールします。 4. エラーが発生した手順を記述したバグレポートを Microsoft Connect Web サイト ( http://connect.microsoft.com/ ) に送信します。 |
シナリオ 2: アプリケーションの動作の検証
このテストでは、 .NET Framework の 2.0 と 4 がインストールされたコンピューターでアプリケーションが正常に機能するかどうかを検証します。
1. アプリケーションをコンピューターで実行します。
2. すべての可能な機能を操作して、それらが正常に動作することを確認します ( できるだけ多くのコードをチェックします ) 。
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
シナリオ 3: .NET Framework 4 で動作するように構成されたアプリケーションのテスト
このテストでは、コンピューター上のすべてのアプリケーションが .NET Framework 4 を使用して正常に実行できるかどうかを検証します。
1. コンピューター上のすべてのマネージアプリケーションが .NET Framework の最新のバージョンを必要とするように構成します。これを行うには、次のレジストリキーを作成するか 、または 設定します。
"OnlyUseLatestCLR"=dword:00000001
· 32 ビットコンピューターの場合は、次のノードの下にレジストリキーを設定します。
[HKEY_LOCAL_COMPUTER\SOFTWARE\Microsoft\.NETFramework]
· 32 ビットアプリケーションを実行する 64 ビットコンピューターの場合は、次のノードの下にレジストリキーを設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
· 64 ビットと 32 ビットのマネージアプリケーションを実行する 64 ビットコンピューターの場合は、次の両方のノードの下にレジストリキーを設定します。
[HKEY_LOCAL_COMPUTER\SOFTWARE\Microsoft\.NETFramework]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ Microsoft\.NET Framework]
2. アプリケーションで使用される可能性があるすべての機能を実行し、 .NET Framework 4 で正常に動作することを検証します。たとえば、次のようなテストを実行します。
· 用意したすべての自動テストを実行する。
· タイミングやパフォーマンスに影響されるすべてのシナリオを試す。
· Windows Vista の 32 ビット版と 64 ビット版、 Windows XP などの複数のオペレーティングシステムでテストする。
3. テストが終了したら、レジストリの値を次に戻します。
"OnlyUseLatestCLR"=dword:00000000
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
COM アドインをテストする
チュートリアルのこのセクションでは、 .NET Framework の Versions 2.0 と 4 が並列でインストールされている場合に、 COM アドインが正常に動作するかどうかをテストする方法について説明します。
シナリオ 4: .NET Framework 4 を使用する COM アドインのテスト
このテストは、 .NET Framework 2.0 を使用してビルドされ、 .NET Framework 2.0 アプリケーションで実行される COM アドインを対象とします。このテストでは、 .NET Framework 4 で動作するようにアドインを構成します。
3. [ program].exe.config という名前のアドイン用の XML ファイルを作成します。たとえば、アドインの名前が Example.exe である場合は、 Example.exe.config という名前のファイルを作成します。
4. この構成ファイルをアドインの .exe ファイルが格納されているフォルダーにコピーします。
5. 次の要素をファイルに追加します。
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true" >
<supportedRuntime version="v4.0" />
</startup>
</configuration>
6. ファイルを保存します。
7. アプリケーションを起動し、アドインを実行します。
4. アプリケーションで使用される可能性があるすべての機能を実行し、 .NET Framework 4 で正常に動作することを検証します。たとえば、次のようなテストを実行します。
· 用意したすべての自動テストを実行する。
· タイミングやパフォーマンスに影響されるすべてのシナリオを試す。
· Windows Vista の 32 ビット版と 64 ビット版、 Windows XP などの複数のオペレーティングシステムでテストする。
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
.NET Framework 4 だけがインストールされたコンピューターでのクライアントアプリケーションのテスト
チュートリアルのこのセクションでは、 .NET Framework の旧バージョンを使用して作成されたマネージコードクライアントアプリケーションが、 .NET Framework 4 だけで動作するかどうかを検証する方法について説明します。
シナリオ 5: インストールのテスト
このテストでは、 .NET Framework 4 だけがインストールされたコンピューターでアプリケーションが正常にインストールされるかどうかを検証します。
1. .NET Framework 4 だけがインストールされた " クリーンな " コンピューターまたは Virtual PC イメージを構成します。
5. アプリケーションをコンピューターにインストールします。アプリケーションによっては、インストールを続行するためにアプリケーションがビルドされた .NET Framework のバージョンをダウンロードするように求められます。
結果の評価
結果を評価し、次の表の指示に従います。
結果 |
次のステップ |
はい、アプリケーションは予想どおりにインストールされました。 |
次のシナリオに進みます。 |
はい、アプリケーションは、アプリケーションによって要求された .NET Framework のバージョンをインストールした後、予想どおりにインストールされました。 |
次のシナリオに進みます。 |
シナリオ 6: アプリケーションの動作の検証
このテストでは、 .NET Framework 4 だけがインストールされたコンピューターでアプリケーションが正常に実行されるかどうかを検証します。
1. .NET Framework 4 だけがインストールされた " クリーンな " コンピューターまたは Virtual PC イメージを構成します。
6. アプリケーションをコンピューターにインストールします。アプリケーションによっては、インストールを続行するためにアプリケーションがビルドされた .NET Framework のバージョンをダウンロードするように求められます。
2. HKEY_LOCAL_COMPUTER\SOFTWARE\Microsoft\.NETFramework レジストリキーを次のように作成するか設定します。
"OnlyUseLatestCLR"=dword:00000001
l アプリケーションで使用される可能性があるすべての機能を実行し、 .NET Framework 4 で正常に動作することを検証します。たとえば、次のようなテストを実行します。
· 用意したすべての自動テストを実行する。
· タイミングやパフォーマンスに影響されるすべてのシナリオを試す。
· Windows Vista の 32 ビット版と 64 ビット版、 Windows XP などの複数のオペレーティングシステムでテストする。
3. テストが終了したら、レジストリの値を次に戻します。
"OnlyUseLatestCLR"=dword:00000000
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
Web アプリケーションをテストする
チュートリアルのこのセクションでは、 .NET Framework の 2.0 と 4 が並列でインストールされている場合に ASP.NET Web アプリケーションをテストする方法について説明します。
シナリオ 7: .NET Framework 4 を使用するプリコンパイル済みの Web アプリケーションの実行
このシナリオでは、 .NET Framework の旧バージョンを使用してプリコンパイルされた Web アプリケーションをテストし、 .NET Framework 4 で実行できるかどうかを確認します。
1. .NET Framework の Version 2.0 または 3.5 で稼動している Web サイトをプリコンパイルします。これは、コマンドライン ASP.NET コンパイルツールを実行し、次の構文を使用することで実行できます。
[%WinDir%]\Microsoft.Net\Framework(64)\v2.0.x.x\aspnet_compiler -v /[ApplicationName] [TargetDir]
たとえば、 ExampleWebApp という名前の Web アプリケーションをコンパイルし、コンパイル後のアセンブリを C:\Target フォルダーに配置するには、次のコマンドを使用します。
aspnet_compiler -v /ExampleWebApp c:\Target
2. プリコンパイル済みの Web サイトを .NET Framework 4 がインストールされたコンピューターにコピーします。
3. ターゲットコンピューターに .NET Framework 4 がインストールされ、有効になっていることを確認するには、次のコマンドを実行します。
[%WinDir%]\Microsoft.Net\Framework(64)\v4.0.x.x\aspnet_regiis –i –enable
4. アプリケーションプールのターゲットが .NET Framework 4 Beta2 であることを確認します。
これで、 Web サイトは .NET Framework 4 を使用して実行するように構成されました。
5. Web サイトを実行し、アプリケーションのすべての可能な機能を操作して、それらが .NET Framework 4 で正常に動作することを検証します。
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
シナリオ 8: .NET Framework 4 を使用する動的コンパイルのテスト
このシナリオでは、 .NET Framework の旧バージョンと .NET Framework Version 4 の間のソースコードの互換性をテストします。
1. .NET Framework の Version 2.0 または Version 3.5 を対象とする Web サイトを .NET Framework 4 がインストールされたコンピューターにインストールします。
2. ターゲットコンピューターに .NET Framework 4 がインストールされ、有効になっていることを確認するには、次のコマンドを実行します。
[%WinDir%]\Microsoft.Net\Framework(64)\v4.0.x.x\aspnet_regiis –i –enable
3. アプリケーションプールのターゲットが .NET Framework 4 Beta2 であることを確認します。
これで、 Web サイトは .NET Framework 4 を使用して実行するように構成されました。
4. Web サイトを実行し、アプリケーションのすべての可能な機能を操作して、それらが .NET Framework 4 で正常に動作することを検証します。
結果の評価
結果の検証方法については、このドキュメントの「結果の評価」を参照してください。
ClickOnce アプリケーションのテスト
チュートリアルのこのセクションでは、 .NET Framework の 2.0 と 4 が並列でインストールされている場合に ClickOnce アプリケーションをテストする方法について説明します。
シナリオ 9: .NET Framework 4 との互換性が確保されるように ClickOnce アプリケーションを構成する
1. 次の例に示すように、アプリケーションの構成ファイルの asmv1::assembly 要素で、 compatibleFrameworks 要素をアプリケーションの配置マニフェストに追加します。
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework profile="Full" targetVersion="4.0"
supportedRuntime="4.0.0" />
</compatibleFrameworks>
アプリケーションのターゲットを .NET Framework 4 のクライアントプロファイルにする場合は、次の構成を使用します。
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework profile="Client" targetVersion="4.0"
supportedRuntime="4.0.0" />
</compatibleFrameworks>
2. 既存の application.config ファイルを更新して、次の要素を含めます。
<startup>
<supportedRuntime version="v4.0.0" />
</startup>
3. 次の例に示すように、アプリケーションマニフェスト内の既存のファイル参照を更新して、構成ファイルを含めます。
<file name="[application file name].exe.config" size="[config file size]">
4. 次の構文を使用し、ハッシュを更新するために Mage コマンドを使用してアプリケーションマニフェストを更新してから、必要に応じて編集します。
Mage –update [path to application manifest]
5. 次の構文を使用し、 Mage コマンドを使用して更新されたアプリケーションマニフェストに署名します。
Mage –Sign [path to application manifest] –CertFile [path to .pfx file]
6. 次の構文を使用し、 Mage コマンドを使用して配置マニフェストを更新してから、必要に応じて編集します。
Mage –update [path to deployment manifest] –AppManifest [path to application manifest]
7. 次の構文を使用し、 Mage コマンドを使用して更新された配置マニフェストに署名します。
Mage –Sign [path to deployment manifest] –CertFile [path to .pfx file]
8. アプリケーションを実行し、アプリケーションのすべての可能な機能を操作して、それらが .NET Framework 4 で正常に動作することを検証します。
結果の評価
結果を評価し、次の表の指示に従います。
結果 |
次のステップ |
はい、アプリケーションは予想どおりに実行されました。 |
該当する場合は、次のテストシナリオに進みます。 |
いいえ、アプリケーションは予想どおりに実行されませんでした。 |
エラーが発生した手順を記述したバグレポートを Microsoft Connect Web サイト ( http://connect.microsoft.com/ ) に送信します。 |
シリアル化をテストする
アプリケーションをテストする際の重要な領域として、データのシリアル化があります。内部のデータ構造が変更されると、変更前の状態に復旧できるような形でデータのシリアル化や永続化が行われているかどうかが容易に確認できなくなる可能性があります。たとえば、 .NET Framework 4 で作成したアプリケーションでデータをシリアル化し、 .NET Framework 4 で作成した別のアプリケーション ( または同じアプリケーション ) で逆シリアル化した場合は、おそらく正しく動作します。ただし、データのシリアル化形式が、 .NET Framework のバージョン間で変更された場合、アプリケーションがすべての場合に正常に動作するとは限りません。 .NET Framework 2.0 で記述されたアプリケーションは、 .NET Framework 4 でシリアル化されたデータを読み取ることができない可能性があります。逆のケースも同じです。 .NET Framework には数十個のシリアル化クラスがあり、さらに、アプリケーション開発者やサードパーティライブラリの開発者は、しばしば独自のクラスを記述します。したがって、シリアル化は、特にテストを行う必要がある重要な領域です。
次のように、 .NET Framework の異なるバージョンを使用してシリアル化をテストすることをお勧めします。
· .NET Framework 2.0 を使用するアプリケーションでデータファイルを保存し、 .NET Framework 4 を使用するアプリケーションでそれを読み取る。
· 逆方向の操作を行う (.NET Framework 4 で保存し、 .NET Framework 2.0 で読み取る ) 。ユーザーは、新しいコンピューター上のアプリケーションから古いコンピューター上のアプリケーションにファイルを転送することがあります。したがって、下位互換性が必要とされるシナリオも考えられます。古いバージョンで新しい形式のデータを読み取る必要があるので、これに対応するのは特に困難です。
· アプリケーションがデータを永続化できるすべての方法を考慮する。これには、ユーザーファイルの保存、クラッシュからの回復、構成ファイルの変更などがあります。すべてのシナリオをテストします。
データは、クライアントがサーバーとデータを交換するときにもシリアル化されます。次のテストを行います。
· アプリケーションがクラウド内のサーバーと通信できる場合は、 .NET Framework 4 を使用するクライアントと .NET Framework 2.0 を使用するサーバーを使用して実行する。可能であれば、逆のパターンもテストします。
· アプリケーションにピアツーピア機能がある場合は、不一致なクライアントを使用してテストする。