.NET Framework は時間の経過と同時に変更されました。 新しいバージョンごとに、新しい機能を提供する新しい型と型メンバーが追加されました。 既存の型とそのメンバーも時間の経過と同時に変化しました。 たとえば、サポートされているテクノロジが新しいテクノロジに置き換えられ、一部の方法が何らかの方法で優れた新しい方法に置き換えられるため、一部の型は重要度が低くなりました。
.NET Framework と共通言語ランタイムは、下位互換性のサポートに努めています (1 つのバージョンの .NET Framework で開発されたアプリケーションを、次のバージョンの .NET Framework で実行できるようにします)。 これにより、型または型メンバーを単純に削除するのが困難になります。 代わりに、.NET Framework は、型または型メンバーを 古い または非推奨としてマークすることで、型または型メンバーを使用しなくなったことを示 しました。 型またはメンバーを取り消すことで、開発者は型が消え、削除に対応する時間があることを認識していました。 ただし、型またはメンバーを使用する既存のコードは、新しいバージョンの .NET で引き続き実行されます。
注
.NET (Core) では、API を難読化しても、必ずしも API が削除されるとは限りません。 詳細については、「 .NET での API の削除」を参照してください。
ObsoleteAttribute 属性
.NET Framework は、型または型のメンバーが ObsoleteAttribute 属性でマークされているため、古い形式であることを示します。 型またはメンバーに属性を適用すると、そのメンバーを使用するコンパイル済みコードを中断することなく、将来のバージョンで型またはメンバーが削除されることを示します。
型または型メンバーが古くなったことを示すだけでなく、 ObsoleteAttribute は、その型またはメンバーを含むソース コードをコンパイラが処理する方法を定義します。 コンパイラはコードをコンパイルできますが、警告メッセージを出力することも、型またはメンバーの使用をエラーとして扱うことができます。 最初のケースでは、コードは正常にコンパイルできますが、型またはメンバーが古いことを示す警告メッセージが表示されます。 2 番目のケースでは、コンパイルが失敗します。
コンパイルで警告メッセージではなくエラーが生成された場合でも、 ObsoleteAttribute は実行時の動作には影響しません。 つまり、型またはメンバーを使用し、正常にコンパイルされたアプリケーションは、常に正常に実行されます。 型またはメンバーを使用するアプリケーションの再コンパイルのみが失敗します。
古い型とメンバーを処理する方法
既存のコードをアップグレードして再コンパイルする場合、アプリケーションでコンパイラ警告を生成する古い型またはメンバーを使用してもかまいません。 ただし、コンパイラの警告メッセージを確認して、アプリケーション コードを変更する必要があるかどうかを判断する必要があります。 メッセージが適切な代替手段を指していない場合は、次のいずれかの操作を行う必要があります。
可能であれば、型またはメンバーの使用を削除してコードを変更します。
-又は-
このテクノロジ領域のドキュメントを確認して、非推奨に対応する方法を決定します。
新しいバージョンの .NET Framework に対して既存のコードを再コンパイルしないことを選択できます。 代わりに、既存のコンパイル済みコードを実行する .NET Framework のバージョンを指定できます。 たとえば、.NET Framework 3.5 に対してコンパイルされた app1.exe という名前のアプリケーションがあり、そのアプリケーションを .NET Framework 4.5 に対して実行するとします。 これには、次の手順が必要です。
メイン実行可能ファイルの構成ファイルを作成し、 appName.exe.configという名前を付けます。 appName はアプリケーション実行可能ファイルの名前です。 この例の app1.exe という名前のアプリケーションでは、 app1.exe.configという名前の構成ファイルを作成します。
構成ファイルに次のコードを追加します。
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
特定のバージョンの .NET Framework を対象にするには、次のいずれかの文字列値を version
属性に割り当てます。
.NET Framework のバージョン |
version 糸 |
---|---|
4.8 (4.8.1 を含む) | v4.0 |
4.7 (4.7.1 および 4.7.2 を含む) | v4.0 |
4.6 (4.6.1 および 4.6.2 を含む) | v4.0 |
4.5 (4.5.1 および 4.5.2 を含む) | v4.0 |
4 | v4.0 |
3.5 | v2.0.50727 |
2.0 | v2.0.50727 |
1.1 | v1.1.4322 |
1.0 | v1.0.3705 |
.NET Framework 4.5 以降のバージョン用の古い API
以前のバージョンの古い API
こちらも参照ください
.NET