Przenoszenie do przodu w czasie samodzielnego środowiska uruchomieniowego wdrożenia
Wdrożenia aplikacji samodzielnej platformy .NET Core obejmują zarówno biblioteki .NET Core, jak i środowisko uruchomieniowe platformy .NET Core. Począwszy od zestawu .NET Core 2.1 SDK (wersja 2.1.300), samodzielne wdrożenie aplikacji publikuje na maszynie najwyższe środowisko uruchomieniowe poprawek. Domyślnie dotnet publish
w przypadku wdrożenia samodzielnego wybiera najnowszą wersję zainstalowaną jako część zestawu SDK na maszynie publikowania. Dzięki temu wdrożona aplikacja może działać z poprawkami zabezpieczeń (i innymi poprawkami) dostępnymi podczas wykonywania polecenia publish
. Aby uzyskać nową poprawkę, należy ponownie opublikować aplikację. Aplikacje samodzielne są tworzone przez określenie -r <RID>
polecenia dotnet publish
lub określenie identyfikatora środowiska uruchomieniowego (RID) w pliku projektu (csproj / vbproj) lub w wierszu polecenia.
Omówienie wprowadzania wersji poprawek
restore
i build
publish
to dotnet
polecenia, które mogą być uruchamiane oddzielnie. Wybór środowiska uruchomieniowego jest częścią restore
operacji, a nie publish
.build
Jeśli wywołasz publish
metodę , zostanie wybrana najnowsza wersja poprawki. Jeśli wywołasz publish
argument z argumentem --no-restore
, być może nie otrzymasz żądanej wersji poprawki, ponieważ poprzednia restore
wersja mogła nie zostać wykonana z nowymi własnymi zasadami publikowania aplikacji. W takim przypadku zostanie wygenerowany błąd kompilacji z tekstem podobnym do następującego:
"Projekt został przywrócony przy użyciu Microsoft.NETCore.App w wersji 2.0.0, ale w przypadku bieżących ustawień zamiast tego będzie używana wersja 2.0.6. Aby rozwiązać ten problem, upewnij się, że te same ustawienia są używane do przywracania i kolejnych operacji, takich jak kompilacja lub publikowanie. Zazwyczaj ten problem może wystąpić, jeśli właściwość RuntimeIdentifier jest ustawiona podczas kompilacji lub publikowania, ale nie podczas przywracania.
Uwaga
restore
i build
można uruchomić niejawnie w ramach innego polecenia, takiego jak publish
. W przypadku niejawnego uruchamiania w ramach innego polecenia są one dostarczane z dodatkowym kontekstem, dzięki czemu tworzone są odpowiednie artefakty. W przypadku publish
środowiska uruchomieniowego (na przykład dotnet publish -r linux-x64
) niejawne restore
pakiety przywracania dla środowiska uruchomieniowego linux-x64. Jeśli wywołasz restore
jawnie, nie przywraca domyślnie pakietów środowiska uruchomieniowego, ponieważ nie ma tego kontekstu.
Jak uniknąć przywracania podczas publikowania
Uruchomienie restore
w ramach operacji może być niepożądane w twoim scenariuszu publish
. Aby uniknąć restore
podczas publish
tworzenia aplikacji samodzielnie, wykonaj następujące czynności:
RuntimeIdentifiers
Ustaw właściwość na rozdzieloną średnikami listę wszystkich identyfikatorów ID do opublikowania.- Ustaw właściwość
TargetLatestRuntimePatch
natrue
.
Argument no-restore z opcjami publikowania dotnet
Jeśli chcesz utworzyć zarówno aplikacje samodzielne, jak i aplikacje zależne od platformy z tym samym plikiem projektu i chcesz użyć argumentu --no-restore
z elementem dotnet publish
, wybierz jedną z następujących opcji:
Preferuj zachowanie zależne od platformy. Jeśli aplikacja jest zależna od struktury, jest to zachowanie domyślne. Jeśli aplikacja jest samodzielna i może używać niesprawnego lokalnego środowiska uruchomieniowego w wersji 2.1.0, ustaw wartość
TargetLatestRuntimePatch
nafalse
wartość w pliku projektu.Preferuj zachowanie samodzielne. Jeśli aplikacja jest samodzielna, jest to zachowanie domyślne. Jeśli aplikacja jest zależna od struktury i wymaga zainstalowanej najnowszej poprawki, ustaw ją
TargetLatestRuntimePatch
natrue
w pliku projektu.Przejmij jawną kontrolę nad wersją struktury środowiska uruchomieniowego, ustawiając
RuntimeFrameworkVersion
konkretną wersję poprawki w pliku projektu.