7.0.100 SDK では、ランタイム識別子 (RID) を必要とするプロパティを持つプロジェクトにを自動的に追加する<RuntimeIdentifier>
がありました。 これらのプロパティは次のとおりです。
SelfContained
PublishAot
PublishReadyToRun
PublishSingleFile
PublishSelfContained
ただし、 SelfContained
を除くこれらのプロパティはすべて、発行にのみ使用されます。 ただし、これらのプロパティがプロジェクト ファイル内にあるか、dotnet
コマンドの一部として指定されている場合、暗黙的ながdotnet
操作に追加されました。
これで、これらのプロパティの自動 RID ( SelfContained
を除く) は、発行時にのみ追加されます。 さらに、自動 RID は、 dotnet publish
CLI コマンドを使用する場合にのみ追加されます。 Visual Studio または msbuild
から発行する場合は追加されません。これらは個別のメカニズムであり、Visual Studio は独自の RID を提供する必要があるためです。
導入されたバージョン
.NET 7.0.200 SDK
以前の動作
以前は、前述のプロパティのいずれかを指定した場合、RID はプロジェクトに自動的に追加されていました。
新しい動作
RID は、 dotnet publish
コマンドに対してのみ自動的に追加されます。
.NET 7 で RID なしで復元を実行し、それを使用して前述のプロパティのいずれかを持つプロジェクトの publish --no-restore
コマンドに対して復元する場合は、 dotnet restore -r <RID>
を使用して RID を指定する必要があります。
破壊的変更の種類
この変更は、 バイナリの互換性 と ソースの互換性に影響する可能性があります。
変更の理由
RID の変更は重大な変更であり、発行プロパティを変更して、 dotnet build
およびその他の発行関連以外のコマンドを中断する必要はありませんでした。
推奨されるアクション
restore
の後にpublish --no-restore
が続くようなアクションの場合は、dotnet restore -r RID
を使用して RID を追加する必要があります。 この場合は、発行時に明示的に指定して、発行に同じ RID ( dotnet publish -r RID
を使用) を設定することをお勧めします。 または、publish コマンドから --no-restore
を削除することもできます。
それ以外の場合は、アクションは必要ありません。 ただし、RID を保持する場合は、次のようにプロジェクト ファイルに追加します: <RuntimeIdentifier>win-x64</RuntimeIdentifier>
。
こちらも参照ください
.NET