Samostatné nasazení – dopředné posunutí modulu runtime
Nasazení samostatně obsažených aplikací .NET Core zahrnuje i knihovny .NET Core i modul runtime .NET Core. Počínaje rozhraním .NET Core 2,1 SDK (verze 2.1.300) publikovaná samostatná nasazení aplikace publikuje na vašem počítači nejvyšší modul opravy. Ve výchozím nastavení se dotnet publish u samostatně zahrnutého nasazení vybere nejnovější verze nainstalovaná jako součást sady SDK na počítači pro publikování. Tím umožníte, aby se nasazená aplikace spouštěla s opravami zabezpečení (a dalšími opravami), které jsou dostupné během publish . Aby bylo možné získat novou opravu, je nutné aplikaci znovu publikovat. Samostatné aplikace jsou vytvořeny zadáním -r <RID>dotnet publish příkazu nebo zadáním -r <RID> v souboru projektu (csproj/vbproj) nebo na příkazovém řádku.
Přehled aktualizace verze posunutí – přehled
restorebuilda publish jsou dotnet příkazy, které mohou běžet samostatně. Volba modulu runtime je součástí restore operace, ne publish nebo build . Pokud zavoláte publish , bude zvolena nejnovější verze patch. Pokud voláte publish s --no-restore argumentem, pak nemusíte získat požadovanou verzi opravy, protože předchozí restore verze nebyla provedena s novou zásadou pro publikování aplikací, která je samostatnou součástí. V tomto případě se chyba sestavení generuje s textem podobným následujícímu:
"Projekt se obnovil pomocí Microsoft.NETCore.App verze 2.0.0, ale s aktuálním nastavením se místo toho použije verze 2.0.6. Chcete-li tento problém vyřešit, zajistěte, aby se pro obnovení používalo stejné nastavení a pro následné operace, jako je například sestavení nebo publikování. K tomuto problému obvykle dochází, pokud je vlastnost RuntimeIdentifier nastavena během sestavování nebo publikování, ale nikoli během obnovení. "
Poznámka
restore a build lze jej spustit implicitně jako součást jiného příkazu, publish například. Při implicitním spuštění jako součást jiného příkazu jsou k dispozici s dalším kontextem, aby byly vytvořeny správné artefakty. Pokud jste publish s modulem runtime (například dotnet publish -r linux-x64 ), implicitní restore obnovení balíčků pro modul runtime systému Linux-x64. Pokud voláte restore explicitně, neobnoví běhové balíčky ve výchozím nastavení, protože nemá daný kontext.
Jak se vyhnout obnovení během publikování
Spuštění restore jako součást publish operace může být pro váš scénář nežádoucí. Abyste se vyhnuli restore během publish vytváření vlastních aplikací, postupujte takto:
RuntimeIdentifiersNastavte vlastnost na seznam středníkem oddělených všechRuntimeIdentifiers, které se mají publikovat.TargetLatestRuntimePatchNastavte vlastnost natruehodnotu.
Argument No-Restore s možnostmi dotnet publish
Pokud chcete vytvořit samostatně obsažené aplikace i aplikace závislé na architektuře se stejným souborem projektu a chcete použít argument s dotnet publish , zvolte jednu z následujících možností:
Preferovat chování závislé na rozhraní. Pokud je aplikace závislá na rozhraní, jedná se o výchozí chování. Pokud je aplikace samostatně obsažena a může použít neopravený místní modul runtime 2.1.0, nastavte na
TargetLatestRuntimePatchfalsehodnotu v souboru projektu.Preferovat chování samostatně obsaženého. Pokud je aplikace samostatná, jedná se o výchozí chování. Pokud je aplikace závislá na rozhraní a vyžaduje instalaci nejnovější opravy, nastavte
TargetLatestRuntimePatchnatruev souboru projektu.Převezměte explicitní řízení verze
RuntimeFrameworkVersionrozhraní Runtime nastavením na konkrétní verzi opravy v souboru projektu.