1. NET Core kommandoradsgränssnitt (CLI)-verktyg Föråldrade project.json och ersatte den med en .csproj-fil, som project.json användes som en projektkonfigurationsfil i den tidiga .NET-kärnan, och det uppskattas att Microsoft avvecklade den efter att ha upptäckt vissa problem, och MSBuild användes fortfarande som ett .net-kompileringsverktyg.
MSBuild introducerar:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
När vi utför VS-kompilering och generering hjälper VS oss bara att anropa MSBuild-verktyget, vilket betyder att när vi kompilerar .NET-projektet behöver vi inte installera VS-verktyget alls.
.NET Core CLI-verktygskommandot är följande:
.NET kommandoradsverktyg (2.1.301) Användning: dotnet [runtime-options] [path to-application] Användning: dotnet [sdk-options] [kommando] [argument] [kommando-options]
path-to-application: Sökvägen till applikationen .dll fil som ska köras.
SDK-kommandon: new initierar .NET-projektet. återställ de beroenden som specificerats i .NET-projektet. kör och kör .NET-projektet omedelbart. bygg .NET-projektet. publish publicerar ett .NET-projekt för distribution (inklusive runtime). Testkör enhetstester med testrunnern som specificeras i projektet. Pack för att skapa ett NuGet-paket. migrera project.json-baserade projekt till MSBuild-baserade projekt. Ren, ren genererad utgång. SLN Modification Solution (SLN)-fil. Lägg till i referensen. ta bort från projektet. Lista de verktyg som projektet refererar till eller installerar. NuGet tillhandahåller ytterligare NuGet-kommandon. msbuild kör Microsoft Build Engine (MSBuild). vstest kör kommandoradsverktyget Microsoft Test Execution. Store lagrar den angivna sammansättningen i runtime-butiken. verktyg för att installera eller använda verktyg som förlänger .NET-upplevelsen. build-server interagerar med servern som startas av buildversionen. Hjälp, visar hjälp.
Vanliga alternativ: -v|--ordrikedom bestämmer detaljnivån i kommandot. De tillåtna värdena är Q[UIET], M[inimal], N[Ormal], D[etailed] och diag[nostic]. -h|--hjälp visar hjälp.
Kör dotnet-kommandot – hjälp till att få mer information om kommandot.
sdk-options: --versionen visar vilken version av .NET Core SDK som används. --info visar .NET Core-information. --list-SDK:er för att visa det installerade SDK:t. --list-runtimes visar den installerade körtiden. -d|--diagnostik möjliggör diagnostisk utmatning.
runtime-options: --additionalprobingpath <path> Vägen som innehåller probepolicyn och sammansättningen för att probe. --fx-version <version> av den installerade versionen av det delade ramverket som ska användas för att köra applikationen. --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" är aktiverat. --additional-deps <path> till sökvägen till andra deps.json filer.
Ytterligare verktyg ("dotnet [verktygsnamn] --hjälp" för mer information): Dev-certs skapar och hanterar utvecklingscertifikat. ef Entity Framework Core kommandoradsverktyg. sql-cache SQL Server cache-kommandoradsverktyg. användarhemligheter Hantera utvecklingsanvändarhemligheter. titta på Start a file watcher som kör ett kommando när filer ändras.
2. Samling och utgivning
Publicera ett .NET-projekt för distribution (inklusive runtime). dotnet publish
C:\project\dotnet\test1>dotnet publish --help Användning: dotnet publish [alternativ]
Alternativ: -H, --hjälpdisplayer, hjälpinformation. -o, --output <OUTPUT_DIR> används för att placera utdatakatalogen för det publicerade objektet. -f, --ramverk <FRAMEWORK> Målramverket som ska publiceras. Målramverket måste specificeras i projektdokumentet. -r, --runtime <RUNTIME_IDENTIFIER> publicera projektet för en given runtime. Använd detta när du skapar självständiga distributioner. Standardåtgärden är att publicera en app som är beroende av ramverket. -c, --konfiguration <CONFIGURATION> används för att generera projektets konfiguration. Standardvärdet för de flesta projekt är "Debug". --version-suffix <VERSION_SUFFIX> definierar värdet på egenskapen $(VersionSuffix) i ditt projekt. --manifest <manifest.xml> Väg till målmanifestfilen som innehåller en lista över paket som ska exekveras genom publiceringssteget. --no-build bygger inte projektet innan publicering. Innebär --ingen återställning. --självständiga medföljande applikationer publicerar .NET Core-runtimes, vilket eliminerar behovet av att installera runtime på måldatorn. Om en runtime-identifierare anges är den som standard "true". --no-restore Utför inte en implicit återställning medan kommandot exekveras. -v, --Ordrikedom bestämmer detaljnivån i kommandot. De tillåtna värdena är Q[UIET], M[inimal], N[Ormal], D[etailed] och diag[nostic]. --no-dependencies sätter denna flagga att ignorera projekt-till-projekt-referenser och endast återställa rotprojektet. --tvinga fram att alla beroenden löses, även om den senaste återställningen har lyckats. Detta motsvarar att ta bort project.assets.json. Ur ett exekveringsperspektiv tar CLI-kommandon sina parametrar och konstruerar ett anrop till den "ursprungliga" MSBuild för att sätta önskade egenskaper och det önskade målet att köra. För att bättre illustrera detta, se följande kommando:
Detta kommando publicerar applikationen till pub-mappen med hjälp av Publicer-konfigurationen. Internt översätts detta kommando till följande MSBuild-anrop:
Definiera målplattformen för din applikation
Skapa en tagg i sektionen i csproj-filen (som används för att definiera målplattformen för din app) <PropertyGroup> <RuntimeIdentifiers> och ange sedan runtime-identifieraren (RID) för varje målplattform. Observera att semikolon också krävs för att separera RIDs. Kolla Runtime Identifier Catalog för en lista över runtime-identifierare. Till exempel <PropertyGroup> visar följande avsnitt att appen körs på ett 64-bitars Windows 10-operativsystem och en 64-bitars OS X version 10.11-versionen av operativsystemet.
Om vi bara vill generera en distribution under win10 x64-plattformen kan vi utföra följande kommando:
Utdatamapp: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, hela mappen har 66M, vilket är ganska stort, som visas i figuren nedan:
Generera releasepaketet under centos.7-x64-plattformen, det finns 70M, vilket också är ganska stort, låt oss försöka publicera det på centos 7 för att köra det (.NET Core SDK är inte installerat på CentOS 7-system)。
Systeminformationen är följande:
[root@master ~]# uname -a Linux master 3.10.0-862.el7.x86_64 #1 SMP Fre 20 apr 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# katt /etc/redhat-release CentOS Linux-version 7.6.1810 (Kärna) Vi laddar upp filen till temp-katalogen och försöker köra test1-filen, som kan exporteras normalt, enligt följande:
[root@master ~]# mkdir temp [root@master ~]# CD temp/ [root@master temp]# ./test1 -bash: ./test1: Inte tillräckligt med behörigheter [root@master temp]# CD .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# CD temp/ [root@master temp]# ./test1 Hej världen! [root@master temp]# echo "http://www.itsvse.com"
http://www.itsvse.com [root@master temp] #
3、. NET Core Run Identifier
.NET Core RID, RID är en förkortning för Runtime Identifier. RID-värden används för att identifiera målplattformen där applikationen körs. .NET-paket använder dem för att representera plattformsspecifika tillgångar i NuGet-paket. Följande värden är exempel på RID: linux-x64, ubuntu.14.04-x64, win7-x64 eller osx.10.12-x64. För paket med inbyggda beroenden specificerar RID plattformen där paketet kan återställas.
<RuntimeIdentifier> Du kan ställa in en RID i elementet i projektfilen. Flera RID:er kan definieras som en <RuntimeIdentifiers> lista (separerade av semikolon) i elementen i en projektfil.
RID:er som representerar ett specifikt operativsystem följer vanligtvis följande mönster: [os]. [version]-[arkitektur]-[ytterligare förbehåll], där:
- [OS] är namnet på operativsystemet/plattformssystemet. Till exempel ubuntu.
- [version] är OS-versionen, som är formaterad med ett prick (.) versionsnummer. Till exempel, 15,10. Versioner bör inte vara marknadsföringsreleaser, eftersom de vanligtvis representerar flera separata versioner av operativsystemet med olika plattforms-API-kringutrustning.
- [arkitektur] är processorarkitekturen. Till exempel: x86, x64, arm eller arm64.
- [ytterligare förbehåll] Differentierar ytterligare mellan olika plattformar. Till exempel AOT eller Corert.
Specifik introduktion:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core skapar NuGet-paket
För .NET Standard och .NET Core bör alla bibliotek släppas som NuGet-paket. Faktum är att det är så alla .NET-standardbibliotek publiceras och används. Detta kan enkelt uppnås med dotnet pack-kommandot.
(Slut)
|