Automatikus futásidejű azonosító bizonyos projektekhez

Az alábbi tulajdonságok bármelyikét meghatározó projektek mostantól automatikusan megkapják a futtatókörnyezet azonosítóját (RID). A RID lehetővé teszi egy önálló üzembe helyezés közzétételét.

  • SelfContained
  • PublishAot
  • PublishReadyToRun
  • PublishSingleFile
  • PublishSelfContained (.NET SDK 7.0.200 és újabb verziók csak)

A változás a következő projekteket érintheti:

  • Régi projektek, amelyek megkerülték a hiányzó futtatókörnyezet-azonosító hibáját.
  • Olyan projektek, amelyek tartalmaznak RuntimeIdentifiers, de nem tartalmaznak RuntimeIdentifier.
  • Olyan projektek, amelyek riD-k nélkül használnak szigorúan kódolt elérési utakat.
  • Azok a projektek, amelyek rendelkeztek ezekkel a tulajdonságokkal, és buildelést használtak a közzététel helyett, elfogadták, hogy a közzététel hibás állapotban van.

Vannak más lehetséges árnyalatok is, amelyek megszakíthatják azokat az egyedi helyzeteket, amelyekről még nem tudunk.

Megjegyzés:

Ez a módosítás a dotnet publish .NET 7.0.200 SDK-ban lévő parancsra korlátozódott. További információ: Automatic RuntimeIdentifier for publish only.

Bevezetett verzió

.NET 7

Előző viselkedés

Korábban ezek a projektek nem sikerült olyan hibákkal publikálni, mint például:

Az alkalmazás nem tehető közzé egy fájlban runtimeIdentifier megadása nélkül. Adjon meg egy RuntimeIdentifiert, vagy állítsa a PublishSingleFile értéket hamisra.

vagy

hiba NETSDK1031: Nem támogatott önálló alkalmazás létrehozása vagy közzététele runtimeIdentifier megadása nélkül. Meg kell adnia egy RuntimeIdentifiert, vagy hamisra kell állítania a SelfContained értéket.

Bizonyos esetekben, például PublishSingleFile vagy speciális RuntimeIdentifiers logikával, a projektek sikeresen felépülhetnek RuntimeIdentifier nélkül.

Új viselkedés

A cikk elején felsorolt tulajdonságokat meghatározó projektekhez automatikusan tartozik egy RuntimeIdentifier. Ez az új viselkedés buildhibákat okozhat az olyan projekteken, amelyek támaszkodnak RuntimeIdentifiers, de nem RuntimeIdentifier, mert RuntimeIdentifier eltérően befolyásolhatja a kimeneti útvonalat RuntimeIdentifiers-hoz képest. Olyan projekteknél is okozhat hibákat AnyCPU , amelyek támaszkodnak PublishSingleFile rá, de más műveletek végrehajtásakor nem mindig adnak RuntimeIdentifier . Ezek a hibák a következőképpen jelenhetnek meg:

A célfolyamat kilépett anélkül, hogy létrehozott volna egy CoreCLR indítási eseményt. Győződjön meg arról, hogy a célfolyamat a .NET Core használatára van konfigurálva.

A kompatibilitástörő változás típusa

Ez a módosítás hatással lehet a forráskompatibilitásra.

A változás oka

A .NET-projektek többsége nem teszi közzé az említett tulajdonságokat RuntimeIdentifier anélkül, hogy be van állítva. Ez a módosítás csökkenti a relatív azonosító manuális hozzáadásának szükségességét minden alkalommal, amikor az említett tulajdonságokat használja.

Ha a projekt érintett, letilthatja az automatikus RuntimeIdentifier funkciót úgy, hogy hozzáadja <UseCurrentRuntimeIdentifier>false</UseCurrentRuntimeIdentifier> a projektfájlhoz.

Ha a kimeneti útvonal módosítása miatt szünetet tapasztal, adja hozzá <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath> a projektfájlhoz.

Lásd még