1. Instrumentul de interfață de linie de comandă (CLI) NET Core A deprevăzut project.json și l-a înlocuit cu un fișier .csproj, care project.json a fost folosit ca fișier de configurare de proiect în nucleul .NET timpuriu, iar se estimează că Microsoft l-a depreactivat după ce a descoperit unele probleme, iar MSBuild a fost încă folosit ca instrument de compilare .net.
MSBuild introduce:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
Când facem compilare și generare de VS, VS ne ajută doar să apelăm instrumentul MSBuild, ceea ce înseamnă că atunci când compilăm proiectul .NET, nu trebuie să instalăm deloc instrumentul VS.
Comanda instrumentului .NET Core CLI este următoarea:
Unelte de linie de comandă .NET (2.1.301) Utilizare: dotnet [opțiuni-runtime] [cale către aplicație] Utilizare: dotnet [sdk-opțiuni] [comandă] [argumente] [comenzi-opțiuni]
path-to-application: Calea către aplicație .dll fișierul de executat.
Comenzi SDK: new inițializează proiectul .NET. restaurează dependențele specificate în proiectul .NET. Rulează și execută imediat proiectul .NET. construiește proiectul .NET. publish publică un proiect .NET pentru implementare (inclusiv runtime-ul). Testarea rulează teste unitare folosind runner-ul de testare specificat în proiect. Împachetează pentru a crea un pachet NuGet. migrarea proiectelor bazate pe project.json către proiecte bazate pe MSBuild. Curată, curată, generată ieșire. Fișier SLN Modification Solution (SLN). Adaugă la referință. Scoate-te din proiect. Listează uneltele la care proiectul face referire sau le instalează. NuGet oferă comenzi suplimentare NuGet. msbuild rulează Microsoft Build Engine (MSBuild). vstest rulează unealta de linie de comandă Microsoft Test Execution. Stocarea stochează ansamblul specificat în magazinul de rulare. pentru a instala sau folosi unelte care extind experiența .NET. build-server interacționează cu serverul lansat de versiunea build. Ajutorul arată ajutor.
Opțiuni comune: -v|--verbozitatea stabilește nivelul de detaliu al comenzii. Valorile permise sunt Q[UIET], M[inimal], N[Ormal], D[etailed] și diag[nostic]. -h|--ajutorul arată ajutor.
Rulează comanda dotnet --help pentru a obține mai multe informații despre comandă.
sdk-options: --versiunea arată versiunea SDK-ului .NET Core folosită. --info afișează informațiile .NET Core. --list-sdks pentru a afișa SDK-ul instalat. --list-runtimes arată timpul de execuție instalat. -d|--diagnostics permite ieșirea de diagnostic.
runtime-options: --additionalprobingpath <path> Calea care conține politica sondei și asamblarea către sondă. --versiunea FX <version> a versiunii instalate a framework-ului partajat care va fi folosită pentru rularea aplicației. --roll-forward-on-no-candidate-fx "No Roll Forward către Candidate Shared Framework" este activat. --deps <path> suplimentare către calea către alte fișiere deps.json.
Instrumente suplimentare ('dotnet [nume-unealtă] --ajutor' pentru mai multe informații): dev-certs Creează și gestionează certificate de dezvoltare. ef Entity Framework Unelte de linie de comandă Core. sql-cache SQL Server pentru unelte de linie de comandă. secrete de utilizator Gestionează secretele de utilizator de dezvoltare. Watch Start a file watcher care rulează o comandă când fișierele se modifică.
2. Compilație și lansare
Publică un proiect .NET pentru implementare (inclusiv runtime-ul). dotnet publish
C:\project\dotnet\test1>dotnet publish --help Utilizare: dotnet publish [opțiuni]
Opțiuni: -h, --ajutor afișează informații de ajutor. -o, --output <OUTPUT_DIR> este folosit pentru a plasa directorul de ieșire al elementului publicat. -f, --cadrul <FRAMEWORK> Cadrul țintă ce urmează să fie publicat. Cadrul țintă trebuie specificat în documentul proiectului. -r, --<RUNTIME_IDENTIFIER>runtime publică proiectul pentru o anumită perioadă de rulare. Folosiți-o atunci când creați implementări autonome. Acțiunea implicită este să publici o aplicație care depinde de framework. -c, --<CONFIGURATION>configurația este folosită pentru a genera configurația proiectului. Valoarea implicită pentru majoritatea proiectelor este "Debug". --sufixul-versiune <VERSION_SUFFIX> definește valoarea proprietății $(VersionSufix) din proiectul tău. --manifest <manifest.xml> Path către fișierul manifest țintă care conține o listă de pachete ce urmează a fi executate prin pasul de publicare. --no-build Nu construiți proiectul înainte de publicare. Implică --nu-restaurare. --aplicațiile autonome însoțitoare publică runtime-uri .NET Core, eliminând necesitatea instalării runtime-ului pe mașina țintă. Dacă este specificat un identificator la runtime, acesta devine implicit "adevărat". --no-restore Nu efectuați o restaurare implicită în timp ce executați comanda. -v, --verbozitatea stabilește nivelul de detaliu al comenzii. Valorile permise sunt Q[UIET], M[inimal], N[Ormal], D[etailed] și diag[nostic]. --no-dependencies setează acest indiciu să ignore referințele proiect la proiect și să restaureze doar proiectul rădăcină. --forțează rezolvarea tuturor dependențelor, chiar dacă ultima restaurare a fost reușită. Aceasta este echivalentă cu ștergerea project.assets.json. Din perspectiva execuției, comenzile CLI își iau parametrii și construiesc un apel către MSBuild-ul "original" pentru a seta proprietățile dorite și ținta dorită de rulat. Pentru a ilustra mai bine acest lucru, consultați următoarea comandă:
Această comandă publică aplicația în folderul pub folosind configurația Public. Intern, această comandă se traduce prin următorul apel MSBuild:
Definește platforma țintă pentru aplicația ta
Creează o etichetă în secțiunea fișierului csproj (care este folosită pentru a defini platforma țintă pentru aplicația <PropertyGroup> <RuntimeIdentifiers> ta) și apoi specifică identificatorul de runtime (RID) pentru fiecare platformă țintă. Rețineți că sunt necesare și puncte și virgula pentru a separa RID-urile. Verificați Catalogul de Identificatori de Runtime pentru o listă de identificatori la runtime. De exemplu, <PropertyGroup> secțiunea următoare indică faptul că aplicația rulează pe un sistem de operare Windows 10 pe 64 de biți și pe o versiune OS X pe 64 de biți versiunea 10.11 a sistemului de operare.
Dacă vrem să generăm doar o distribuție sub platforma win10 x64, putem executa următoarea comandă:
Folder de ieșire: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, întregul folder are 66M, ceea ce este destul de mare, așa cum se vede în figura de mai jos:
Generează pachetul de lansare pe platforma centos.7-x64, există 70M, care este de asemenea destul de mare, hai să încercăm să-l publicăm pe centos 7 pentru a-l executa (SDK-ul .NET Core nu este instalat pe sistemele CentOS 7)。
Informațiile sistemului sunt următoarele:
[root@master ~]# uname -a Linux master 3.10.0-862.el7.x86_64 #1 SMP Vin 20 Apr 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# pisică /etc/redhat-release Lansarea CentOS Linux 7.6.1810 (Core) Încărcăm fișierul în directorul temporar și încercăm să executăm fișierul test1, care poate fi generat normal, după cum urmează:
[root@master ~]# mkdir temp [root@master ~]# CD Temp/ [root@master temp]# ./test1 -bash: ./test1: Nu sunt suficiente permisiuni [root@master temp]# CD .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# CD Temp/ [root@master temp]# ./test1 Bună oameni buni! [root@master temp]# ecou "http://www.itsvse.com"
http://www.itsvse.com [root@master temporar] #
3、. Identificator de rundă NET Core
.NET Core RID, RID este prescurtarea de la Runtime Identifier. Valorile RID sunt folosite pentru a identifica platforma țintă pe care rulează aplicația. Pachetele .NET le folosesc pentru a reprezenta active specifice platformei în pachetele NuGet. Următoarele valori sunt exemple de RID: linux-x64, ubuntu.14.04-x64, win7-x64 sau osx.10.12-x64. Pentru pachetele cu dependențe native, RID specifică platforma pe care pachetul poate fi restaurat.
<RuntimeIdentifier> Poți seta un RID în elementul fișierului de proiect. Mai multe RID-uri pot fi definite ca o <RuntimeIdentifiers> listă (separată prin punct și virgulă) în elementele unui fișier de proiect.
RID-urile care reprezintă un anumit sistem de operare urmează de obicei următorul tipar: [os]. [versiune]-[arhitectură]-[calificative suplimentare], unde:
- [OS] este numele sistemului de operare/platformei. De exemplu, ubuntu.
- [versiune] este versiunea sistemului de operare, care este formatată cu un număr de versiune punct (.). De exemplu, 15,10. Versiunile nu ar trebui să fie versiuni de marketing, deoarece ele reprezintă de obicei mai multe versiuni separate ale sistemului de operare cu periferice API de platformă diferite.
- [arhitectura] este arhitectura procesorului. De exemplu: x86, x64, arm sau arm64.
- [calificative suplimentare] diferențiază și mai mult între platformele diferite. De exemplu, AOT sau Corert.
Introducere specifică:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core creează pachete NuGet
Pentru .NET Standard și .NET Core, toate bibliotecile ar trebui lansate ca pachete NuGet. De fapt, așa sunt publicate și folosite toate bibliotecile standard .NET. Acest lucru poate fi realizat ușor folosind comanda dotnet pack.
(Sfârșit)
|