1. NET Core komandrindas interfeisa (CLI) rīks Novecoja project.json un aizstāja to ar .csproj failu, kas project.json tika izmantots kā projekta konfigurācijas fails agrīnajā .NET kodolā, un tiek lēsts, ka Microsoft to novecoja pēc dažu problēmu atklāšanas, un MSBuild joprojām tika izmantots kā .net kompilācijas rīks.
MSBuild ievieš:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
Kad mēs veicam VS kompilēšanu un ģenerēšanu, VS vienkārši palīdz mums izsaukt MSBuild rīku, kas nozīmē, ka, kompilējot .NET projektu, mums vispār nav nepieciešams instalēt VS rīku.
.NET Core CLI rīka komanda ir šāda:
.NET komandrindas rīki (2.1.301) Lietojums: dotnet [izpildlaika opcijas] [ceļš uz lietojumprogrammu] Lietojums: dotnet [sdk-options] [command] [arguments] [command-options]
path-to-application: Ceļš uz lietojumprogrammu .dll izpildāmais fails.
SDK komandas: jauns inicializē .NET projektu. atjaunot .NET projektā norādītās atkarības. Nekavējoties palaidiet un izpildiet .NET projektu. izveidot .NET projektu. publish publicē .NET projektu izvietošanai (ieskaitot izpildlaiku). testa veic vienības testus, izmantojot projektā norādīto testa skrējēju. pakotni, lai izveidotu NuGet pakotni. migrēt project.json projektus uz MSBuild balstītiem projektiem. tīra tīra ģenerētā produkcija. SLN modifikācijas risinājuma (SLN) fails. pievienot atsaucei. noņemt no projekta. Uzskaitiet rīkus, uz kuriem projekts atsaucas vai instalē. NuGet nodrošina papildu NuGet komandas. msbuild darbojas Microsoft Build Engine (MSBuild). vstest palaiž Microsoft Test Execution komandrindas rīku. Veikals saglabā norādīto montāžu izpildlaika krātuvē. rīks, lai instalētu vai izmantotu rīkus, kas paplašina .NET pieredzi. Build-Server mijiedarbojas ar serveri, kas tiek palaists ar būvēšanas versiju. Palīdzība rāda palīdzību.
Biežākās iespējas: -v|--verbosity nosaka komandas detalizācijas pakāpi. Pieļaujamās vērtības ir Q[UIET], M[inimal], N[Ormal], D[etailed] un diag[nostic]. -h|--palīdzība rāda palīdzību.
Palaidiet komandu dotnet --help, lai iegūtu papildinformāciju par komandu.
sdk-options: --versija parāda izmantoto .NET Core SDK versiju. --info parāda .NET pamatinformāciju. --list-sdks, lai parādītu instalēto SDK. --list-runtimes rāda instalēto izpildlaiku. -d|--diagnostika iespējo diagnostikas izvadi.
runtime-options: --additionalprobingpath <path> Ceļš, kas satur zondes politiku un zondes montāžu. --fx-version <version> versija instalētās koplietošanas sistēmas versijai, kas jāizmanto lietojumprogrammas palaišanai. --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" ir iespējots. --additional-deps <path> ceļam uz citiem deps.json failiem.
Papildu rīki ('dotnet [rīka nosaukums] --palīdzība' plašākai informācijai): dev-certs Izveidojiet un pārvaldiet izstrādes sertifikātus. ef Entity Framework Core komandrindas rīki. sql-cache SQL Server kešatmiņas komandrindas rīki. user-secrets Pārvaldiet izstrādes lietotāju noslēpumus. Skatiens Startējiet failu vērotāju, kas izpilda komandu, kad faili mainās.
2. Apkopošana un izlaišana
Publicējiet .NET projektu izvietošanai (ieskaitot izpildlaiku). dotnet publicēt
C:\project\dotnet\test1>dotnet publish --help Lietojums: dotnet publicēt [opcijas]
Iespējas: -h, --palīdzība parāda palīdzības informāciju. -o, --output <OUTPUT_DIR> tiek izmantots, lai ievietotu publicētā vienuma izvades direktoriju. -f, --ietvars <FRAMEWORK> Publicējamais mērķa ietvars. Mērķa ietvars ir jānorāda projekta dokumentā. -r, --izpildlaiks <RUNTIME_IDENTIFIER> publicējiet projektu noteiktam izpildlaikam. Izmantojiet to, veidojot autonomus izvietojumus. Noklusējuma darbība ir publicēt programmu, kas ir atkarīga no struktūras. -c, --konfigurācija <CONFIGURATION> tiek izmantota, lai ģenerētu projekta konfigurāciju. Noklusējuma vērtība lielākajai daļai projektu ir "Atkļūdot". --version-suffix <VERSION_SUFFIX> definē rekvizīta $(VersionSuffix) vērtību jūsu projektā. --manifest <manifest.xml> Ceļš uz mērķa manifesta failu, kas satur pakotņu sarakstu, kas jāizpilda, veicot publicēšanas darbību. --no-build neveidojiet projektu pirms publicēšanas. Nozīmē --no-restore. --Autonomas pievienotās lietojumprogrammas publicē .NET Core izpildlaikus, novēršot nepieciešamību instalēt izpildlaiku mērķa datorā. Ja ir norādīts izpildlaika identifikators, tas pēc noklusējuma ir "true". --no-restore Neveiciet netiešu atjaunošanu, izpildot komandu. -v, --verbosity nosaka komandas detalizācijas pakāpi. Pieļaujamās vērtības ir Q[UIET], M[inimal], N[Ormal], D[etailed] un diag[nostic]. --no-dependencies iestata šo karodziņu, lai ignorētu projekta atsauces un atjaunotu tikai saknes projektu. --piespiest atrisināt visas atkarības, pat ja pēdējā atjaunošana ir bijusi veiksmīga. Tas ir līdzvērtīgs project.assets.json dzēšanai. No izpildes viedokļa CLI komandas ņem savus parametrus un izveido izsaukumu uz "oriģinālo" MSBuild, lai iestatītu vēlamos rekvizītus un vēlamo mērķi. Lai to labāk ilustrētu, skatiet šo komandu:
Šī komanda publicē lietojumprogrammu kroga mapē, izmantojot publicēšanas konfigurāciju. Iekšēji šī komanda nozīmē šādu MSBuild izsaukumu:
Definējiet mērķa platformu savai lietojumprogrammai
Izveidojiet atzīmi csproj faila sadaļā (kas tiek izmantota, lai definētu jūsu programmas mērķa platformu) <PropertyGroup> <RuntimeIdentifiers> un pēc tam norādiet izpildlaika identifikatoru (RID) katrai mērķa platformai. Ņemiet vērā, ka semikoli ir nepieciešami arī, lai atdalītu RID. Pārbaudiet, vai izpildlaika identifikatoru katalogā ir pieejams izpildlaika identifikatoru saraksts. Piemēram, nākamajā <PropertyGroup> sadaļā norādīts, ka programma darbojas 64 bitu operētājsistēmā Windows 10 un 64 bitu OS X versijas 10.11 versijā.
Ja mēs vēlamies ģenerēt izplatīšanu tikai zem win10 x64 platformas, mēs varam izpildīt šādu komandu:
Izvades mape: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, visai mapei ir 66M, kas ir diezgan liels, kā parādīts zemāk redzamajā attēlā:
Ģenerējiet izlaišanas pakotni centos.7-x64 platformā, ir 70M, kas arī ir diezgan liels, mēģināsim to publicēt centos 7, lai to izpildītu (.NET Core SDK nav instalēts CentOS 7 sistēmās)。
Sistēmas informācija ir šāda:
[root@master ~]# uname -a Linux meistars 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# kaķis /etc/redhat-release CentOS Linux laidiens 7.6.1810 (kodols) Mēs augšupielādējam failu pagaidu direktorijā un cenšamies izpildīt test1 failu, ko var izvadīt normāli, šādi:
[root@master ~]# mkdir temp [root@master ~]# cd temp/ [root@master temp]# ./test1 -bash: ./test1: Nav pietiekami daudz atļauju [root@master temp]# cd .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# cd temp/ [root@master temp]# ./test1 Sveika, pasaule! [root@master temp]# atbalss "http://www.itsvse.com"
http://www.itsvse.com [root@master temp] #
3、. NET Core izpildes identifikators
.NET Core RID, RID ir saīsinājums no Runtime Identifier. RID vērtības tiek izmantotas, lai identificētu mērķa platformu, kurā darbojas lietojumprogramma. .NET pakotnes tās izmanto, lai attēlotu platformai specifiskus līdzekļus NuGet pakotnēs. Tālāk norādītās vērtības ir RID piemēri: linux-x64, ubuntu.14.04-x64, win7-x64 vai osx.10.12-x64. Pakotnēm ar vietējām atkarībām RID norāda platformu, kurā pakotni var atjaunot.
<RuntimeIdentifier> Projekta faila elementā varat iestatīt RID. Vairākus RID var definēt kā <RuntimeIdentifiers> sarakstu (atdalīti ar semikoliem) projekta faila elementos.
RID, kas attēlo konkrētu operētājsistēmu, parasti seko šādam modelim: [os]. [versija]-[arhitektūra]-[papildu kvalificētāji], kur:
- [OS] ir operētājsistēmas/platformas sistēmas nosaukums. Piemēram, ubuntu.
- [versija] ir operētājsistēmas versija, kas ir formatēta ar punktu (.) versijas numuru. Piemēram, 15.10. Versijām nevajadzētu būt mārketinga laidieniem, jo tās parasti pārstāv vairākas atsevišķas operētājsistēmas versijas ar dažādām platformas API perifērijas ierīcēm.
- [arhitektūra] ir procesora arhitektūra. Piemēram: x86, x64, arm vai arm64.
- [papildu kvalificētāji] vēl vairāk diferencē dažādas platformas. Piemēram, AOT vai Corert.
Īpašs ievads:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core izveido NuGet pakotnes
.NET Standard un .NET Core visām bibliotēkām jābūt izlaistām kā NuGet pakotnes. Faktiski šādi tiek publicētas un izmantotas visas .NET standarta bibliotēkas. To var viegli panākt, izmantojot komandu dotnet pack.
(Beigas)
|