Samostatné nasazení – dopředné posunutí modulu runtime
Samostatná nasazení aplikací .NET Core zahrnují knihovny .NET Core i modul runtime .NET Core. Počínaje sadou .NET Core 2.1 SDK (verze 2.1.300) publikuje nasazení samostatné aplikace na vašem počítači nejvyšší modul runtime oprav. Ve výchozím nastavení dotnet publish
pro samostatné nasazení vybere nejnovější verzi nainstalovanou jako součást sady SDK na počítači publikování. To umožňuje, aby vaše nasazená aplikace běžela s opravami zabezpečení (a dalšími opravami), které jsou k dispozici během publish
. Aby bylo možné získat novou opravu, musí být aplikace znovu publikována. Samostatné aplikace se vytvářejí zadáním -r <RID>
příkazu dotnet publish
nebo zadáním identifikátoru runtime (RID) v souboru projektu (csproj / vbproj) nebo na příkazovém řádku.
Přehled postupného uvedení verze opravy
restore
build
a publish
jsou dotnet
příkazy, které se dají spustit samostatně. Volba modulu runtime je součástí restore
operace, nikoli publish
nebo build
. Pokud zavoláte publish
, zvolí se nejnovější verze opravy. Pokud zavoláte publish
s argumentem --no-restore
, pravděpodobně nebudete mít požadovanou verzi opravy, protože předchozí restore
verze nebyla provedena s novou samostatnou zásadou publikování aplikací. V tomto případě se vygeneruje chyba sestavení s textem podobným následujícímu:
Projekt byl obnoven pomocí Microsoft.NETCore.App verze 2.0.0, ale s aktuálním nastavením by se místo toho použila verze 2.0.6. Pokud chcete tento problém vyřešit, ujistěte se, že se pro obnovení a následné operace, jako je sestavení nebo publikování, používají stejná nastavení. K tomuto problému obvykle může dojít, pokud je vlastnost RuntimeIdentifier nastavena během sestavení nebo publikování, ale ne během obnovení."
Poznámka:
restore
a build
lze je spustit implicitně jako součást jiného příkazu, například publish
. Když se spustí implicitně jako součást jiného příkazu, zobrazí se jim další kontext, aby se vytvořily správné artefakty. Pokud používáte publish
modul runtime (například dotnet publish -r linux-x64
), implicitní restore
obnovení balíčků pro modul runtime linux-x64. Pokud voláte restore
explicitně, ve výchozím nastavení neobnoví balíčky modulu runtime, protože tento kontext nemá.
Jak se vyhnout obnovení během publikování
Spuštění restore
v rámci publish
operace může být pro váš scénář nežádoucí. Pokud se chcete vyhnout restore
během publish
vytváření samostatných aplikací, postupujte takto:
RuntimeIdentifiers
Nastavte vlastnost na seznam oddělený středníkem všech identifikátorů RID, které se mají publikovat.- Nastavte vlastnost
TargetLatestRuntimePatch
natrue
.
Argument bez obnovení s možnostmi publikování dotnet
Pokud chcete vytvořit samostatné aplikace i aplikace závislé na rozhraní se stejným souborem projektu a chcete použít --no-restore
argument s dotnet publish
, zvolte jednu z následujících možností:
Preferujte chování závislé na rozhraní. Pokud je aplikace závislá na rozhraní, jedná se o výchozí chování. Pokud je aplikace samostatná a může použít nepatchovaný místní modul runtime 2.1.0, nastavte
TargetLatestRuntimePatch
hodnotu vfalse
souboru projektu.Upřednostňujte samostatné chování. Pokud je aplikace samostatná, jedná se o výchozí chování. Pokud je aplikace závislá na rozhraní a vyžaduje nainstalovanou nejnovější opravu, nastavte
TargetLatestRuntimePatch
ji vtrue
souboru projektu.Převezměte explicitní kontrolu nad verzí modulu runtime tak, že v souboru projektu nastavíte
RuntimeFrameworkVersion
konkrétní verzi opravy.