Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 23453|Odgovoriti: 0

[.NET Core] [Uvod v DotNet (2)]. Prevajanje in izdaja NET Core

[Kopiraj povezavo]
Objavljeno na 21. 01. 2019 17:10:26 | | | |
1. Orodje za ukazno vrstico NET Core (CLI)
Zastarel project.json in ga nadomestil z .csproj datoteko, ki je bila project.json uporabljena kot konfiguracijska datoteka projekta v zgodnjem .NET jedru, ocenjuje se, da jo je Microsoft po odkritju nekaterih težav zastarel, MSBuild pa se je še vedno uporabljal kot orodje za .net prevajanje.

MSBuild predstavlja:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017

Ko izvajamo prevajanje in generiranje VS, nam VS pomaga le poklicati orodje MSBuild, kar pomeni, da pri prevajanju .NET projekta sploh ni treba nameščati orodja VS.

Ukaz orodja .NET Core CLI je naslednji:

.NET ukazna vrstica (2.1.301)
Uporaba: dotnet [možnosti za izvajanje] [pot do aplikacije]
Uporaba: dotnet [sdk-options] [ukaz] [argumenti] [ukaz-možnosti]

path-to-application:
  Pot do aplikacije .dll datoteko, ki jo je treba zagnati.

SDK ukazi:
  new inicializira .NET projekt.
  obnoviti odvisnosti, določene v .NET projektu.
  zaženi in takoj zaženi .NET projekt.
  zgradi .NET projekt.
  publish objavi .NET projekt za uvajanje (vključno z izvajanjem).
  Test izvaja enotske teste z uporabo testnega izvajalca, določenega v projektu.
  za ustvarjanje paketa NuGet.
  Migrirajte projekte, ki temeljijo na project.json, v projekte na osnovi MSBuild.
  Čisti, čisti izhod.
  Datoteka SLN Modification Solution (SLN).
  Dodajte k referenci.
  odstranite iz projekta.
  Navedite orodja, na katera se projekt sklicuje ali jih namešča.
  NuGet zagotavlja dodatne ukaze NuGet.
  msbuild poganja Microsoft Build Engine (MSBuild).
  vstest poganja ukazno vrstico Microsoft Test Execution.
  Shramba shrani določen sklop v runtime shrambo.
  orodje za namestitev ali uporabo orodij, ki razširjajo .NET izkušnjo.
  strežnik za gradnjo komunicira s strežnikom, ki ga zažene različica gradnje.
  Pomoč pomeni pomoč.

Pogoste možnosti:
  -v|--obširnost določa raven podrobnosti ukaza. Dovoljene vrednosti so Q[UIET], M[inimal], N[Ormal], D[etailed] in diag[nostic].
  -H|--pomoč pomeni pomoč.

Zaženite ukaz dotnet – pomagajte pridobiti več informacij o ukazu.

sdk-options:
  --različica prikazuje različico .NET Core SDK, ki se uporablja.
  --info prikazuje informacije iz .NET Core.
  --list-sdks za prikaz nameščenega SDK.
  --list-runtimes prikazuje nameščeni čas izvajanja.
  -d|--diagnostika omogoča diagnostični izhod.

runtime-options:
  --dodatnaprobingpath <path> Pot, ki vsebuje politiko in sestavo sonde za sondo.
  --<version>fx-različica nameščene različice skupnega ogrodja, ki se uporablja za zagon aplikacije.
  --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" je omogočen.
  --dodatne-dep <path> na pot do drugih deps.json datotek.

Dodatna orodja ('dotnet [ime orodja] --help' za več informacij):
  razvojni certifikati Ustvarjajo in upravljajo razvojne certifikate.
  ef Entity Framework Core ukazna orodja.
  sql-cache SQL Server cache command-line tools.
  uporabniške skrivnosti Upravljajte razvojne uporabniške skrivnosti.
  watch Zaženi nadzornik datotek, ki izvede ukaz, ko se datoteke spremenijo.

2. Kompilacija in izdaja


Objavite .NET projekt za namestitev (vključno z izvajanjem).
dotnet publish


C:\project\dotnet\test1>dotnet publish --help
Uporaba: dotnet publish [možnosti]

Možnosti:
  -H, --Pomoč prikazuje informacije o pomoči.
  -o, --izhod <OUTPUT_DIR> se uporablja za postavitev izhodnega imenika objavljenega elementa.
  -f, --okvir <FRAMEWORK> Ciljni okvir, ki bo objavljen. Ciljni okvir mora biti določen v projektnem dokumentu.
  -r, --<RUNTIME_IDENTIFIER>v času izvajanja objavi projekt za določen čas izvajanja. Uporabite to pri ustvarjanju samostojnih namestitev. Privzeto dejanje je objaviti aplikacijo, ki je odvisna od ogrodja.
  -c, --konfiguracija <CONFIGURATION> se uporablja za generiranje konfiguracije projekta. Privzeta vrednost za večino projektov je "Debug".
  --version-suffix <VERSION_SUFFIX> določa vrednost lastnosti $(VersionSuffix) v vašem projektu.
  --manifest <manifest.xml> Pot do ciljne manifestne datoteke, ki vsebuje seznam paketov, ki jih je treba izvesti skozi korak objave.
  --no-build ne gradi projekta pred objavo. Pomeni --no-obnove.
  --samostojne spremljevalne aplikacije objavljajo .NET Core runtime, kar odpravlja potrebo po namestitvi runtime na ciljni računalnik. Če je določen identifikator v času izvajanja, se privzeto nastavi na "resnično".
  --no-restore Med izvajanjem ukaza ne izvajajte implicitne obnove.
  -v, --obširnost določa raven podrobnosti ukaza. Dovoljene vrednosti so Q[UIET], M[inimal], N[Ormal], D[etailed] in diag[nostic].
  --no-dependencies nastavi to zastavico, da ignorira reference med projekti in obnovi le korenski projekt.
  --prisili, da se vse odvisnosti rešijo, tudi če je bila zadnja obnova uspešna. To je enakovredno brisanju project.assets.json.
Z vidika izvajanja CLI ukazi vzamejo svoje parametre in vzpostavijo klic "originalnemu" MSBuildu, da nastavijo želene lastnosti in želeni cilj za zagon. Za boljšo ponazoritev glejte naslednji ukaz:


Ta ukaz objavi aplikacijo v mapo pub z uporabo konfiguracije Objavi. Interno se ta ukaz prevede v naslednji klic MSBuild:
Določite ciljno platformo za vašo aplikacijo


Ustvarite oznako v razdelku datoteke csproj (ki se uporablja za določanje ciljne platforme za vašo aplikacijo) <PropertyGroup> <RuntimeIdentifiers> in nato določite identifikator izvajanja (RID) za vsako ciljno platformo. Upoštevajte, da so za ločevanje RID-ov potrebni tudi podpičja. Preverite katalog identifikatorjev za izvajanje za seznam identifikatorjev v času izvajanja.
Na primer, <PropertyGroup> naslednji razdelek navaja, da aplikacija deluje na 64-bitnem operacijskem sistemu Windows 10 in 64-bitni različici OS X 10.11.


Če želimo generirati distribucijo le pod platformo win10 x64, lahko izvedemo naslednji ukaz:

Izhodna mapa: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, celotna mapa ima 66M, kar je precej veliko, kot je prikazano na spodnji sliki:



Generiraj paket za izdajo na platformi centos.7-x64, obstaja 70M, kar je prav tako precej veliko, poskusimo ga objaviti na centos 7, da ga izvedemo (.NET Core SDK ni nameščen na sistemih CentOS 7)。

Sistemske informacije so naslednje:

[root@master ~]# uname -a
Linux master 3.10.0-862.el7.x86_64 #1 SMP pet 20. aprila 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@master ~]# mačka /itd/redhat-release
CentOS Linux izdaja 7.6.1810 (jedro)
Datoteko naložimo v začasno mapo in poskušamo zagnati test1 datoteko, ki jo lahko normalno izpišemo, kot sledi:

[root@master ~]# mkdir temp
[root@master ~]# CD temp/
[root@master temperatura]# ./test1
-bash: ./test1: Premalo dovoljenj
[root@master temp]# CD ..
[root@master ~]# chmod -R 777 temp/
[root@master ~]# CD temp/
[root@master temperatura]# ./test1
Pozdravljeni vsi skupaj!
[root@master temp]# odmeva "http://www.itsvse.com"
http://www.itsvse.com
[root@master temperatura] #


3、. NET Core Run Identifier

.NET Core RID, RID je okrajšava za Runtime Identifier. RID vrednosti se uporabljajo za identifikacijo ciljne platforme, na kateri aplikacija teče. .NET paketi jih uporabljajo za predstavitev platformno specifičnih sredstev v NuGet paketih. Naslednje vrednosti so primeri RID: linux-x64, ubuntu.14.04-x64, win7-x64 ali osx.10.12-x64. Za pakete z nativnimi odvisnostmi RID določa platformo, na kateri je mogoče paket obnoviti.

<RuntimeIdentifier> RID lahko nastavite v elementu projektne datoteke. Več RID-ov je mogoče definirati kot <RuntimeIdentifiers> seznam (ločen s podpičji) v elementih projektne datoteke.

RID-ji, ki predstavljajo določen operacijski sistem, običajno sledijo naslednjemu vzorcu: [os]. [verzija]-[arhitektura]-[dodatni dodatki], kjer:
  • [OS] je ime operacijskega sistema/platformnega sistema. Na primer, Ubuntu.
  • [version] je različica operacijskega sistema, ki je oblikovana s piko (.) številko različice. Na primer, 15.10. Različice ne bi smele biti marketinške izdaje, saj običajno predstavljajo več ločenih različic operacijskega sistema z različnimi platformnimi API perifernimi napravami.
  • [arhitektura] je arhitektura procesorja. Na primer: x86, x64, arm ali arm64.
  • [dodatne kvalifikacije] dodatno razlikujejo med različnimi platformami. Na primer AOT ali Corert.



Specifičen uvod:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

4、. NET Core ustvarja NuGet pakete

Za .NET Standard in .NET Core naj bodo vse knjižnice izdane kot paketi NuGet. Pravzaprav so tako objavljene in uporabljene vse .NET standardne knjižnice. To je mogoče enostavno doseči z ukazom dotnet pack.



(Konec)




Prejšnji:Video vodič za nacionalni državni izpit 2019
Naslednji:Visual Studio 2017 dodaja MSDN
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com