📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 702行目: | 702行目: | ||
ターゲットフレームワークは、プロジェクトファイルで指定する。<br> | ターゲットフレームワークは、プロジェクトファイルで指定する。<br> | ||
<br> | <br> | ||
単一のターゲットフレームワークを指定する場合、プロジェクトファイル(. | 単一のターゲットフレームワークを指定する場合、プロジェクトファイル (.csprojファイル) の<code>TargetFramework</code>エレメントに記述する。<br> | ||
<br> | <br> | ||
以下の例では、ターゲットを.NET 6に変更している。<br> | 以下の例では、ターゲットを.NET 6に変更している。<br> | ||
| 826行目: | 826行目: | ||
<br> | <br> | ||
TFMの詳細は、[https://docs.microsoft.com/ja-jp/dotnet/standard/frameworks Microsoftの公式Webサイト]を参照すること。<br> | TFMの詳細は、[https://docs.microsoft.com/ja-jp/dotnet/standard/frameworks Microsoftの公式Webサイト]を参照すること。<br> | ||
<br><br> | |||
== .NET 8の変更点 == | |||
.NET 8では、いくつかのアーキテクチャに関する重要な変更が導入された。<br> | |||
特に、Linux環境での動作に影響を与える変更がある。<br> | |||
<br> | |||
* ネイティブAOT (Ahead-of-Time) コンパイルのサポートが強化されて、プラットフォーム固有の最適化がより重視された。 | |||
* クロスプラットフォームビルドの処理方法が改善されて、より厳密なプラットフォームチェックが導入された。 | |||
<br> | |||
==== AnyCPUの扱いの変更 ==== | |||
* .NET 7以前 | |||
*: AnyCPUは、実行時に適切なプラットフォームを動的に選択される。 | |||
* .NET 8以降 | |||
*: 特にLinux環境では、より明示的なプラットフォーム指定が必要になるケースが増加した。 | |||
<br> | |||
AnyCPUの取り扱いは、以下に示す目的で導入された。<br> | |||
* より効率的なネイティブコード生成 | |||
* プラットフォーム固有の最適化の改善 | |||
* セキュリティとパフォーマンスの向上 | |||
* クロスプラットフォームビルドの信頼性向上 | |||
<br> | |||
ただし、この動作は環境やプロジェクトの設定によって異なる場合がある。<br> | |||
特にLinux環境では、システムのアーキテクチャとの互換性をより明示的に指定する必要がある。<br> | |||
<br> | |||
.NET 8以降では、プラットフォームの選択において、AnyCPUではなく<u>アーキテクチャ</u>あるいは<u>ターゲットプラットフォーム</u>を指定することが推奨される。<br> | |||
<br> | |||
<syntaxhighlight lang="xml"> | |||
<!-- 方法1: 明示的にx64を指定 --> | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>net8.0</TargetFramework> | |||
<PlatformTarget>x64</PlatformTarget> | |||
</PropertyGroup> | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="xml"> | |||
<!-- 方法2: ターゲットプラットフォームを指定 --> | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>net8.0</TargetFramework> | |||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier> | |||
</PropertyGroup> | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||