Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 23453|Atsakyti: 0

[.NET branduolys] [DotNet įvadas (2)]. NET Core kompiliavimas ir išleidimas

[Kopijuoti nuorodą]
Paskelbta 2019-01-21 17:10:26 | | | |
1. NET Core komandų eilutės sąsajos (CLI) įrankis
Pasenęs project.json ir pakeitė jį .csproj failu, kuris project.json buvo naudojamas kaip projekto konfigūracijos failas ankstyvajame .NET branduolyje, ir manoma, kad "Microsoft" jį nebenaudojo aptikusi tam tikrų problemų, o MSBuild vis dar buvo naudojamas kaip .net kompiliavimo įrankis.

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

Kai atliekame VS kompiliavimą ir generavimą, VS tiesiog padeda mums iškviesti MSBuild įrankį, o tai reiškia, kad kompiliuojant .NET projektą mums visai nereikia diegti VS įrankio.

.NET Core CLI įrankio komanda yra tokia:

.NET komandų eilutės įrankiai (2.1.301)
Naudojimas: dotnet [runtime-options] [path-to-application]
Naudojimas: dotnet [sdk-options] [command] [arguments] [command-options]

path-to-application:
  Programos kelias .dll failas, kurį reikia vykdyti.

SDK komandos:
  naujas inicijuoja .NET projektą.
  atkurti .NET projekte nurodytas priklausomybes.
  nedelsdami paleiskite ir vykdykite .NET projektą.
  sukurti .NET projektą.
  publikuoti publikuoja .NET projektą diegimui (įskaitant vykdymo laiką).
  Bandymas atlieka vieneto bandymus naudojant projekte nurodytą bandymo bėgelį.
  pakuotę, kad sukurtumėte "NuGet" paketą.
  perkelti project.json pagrįstus projektus į MSBuild pagrįstus projektus.
  švarus švarus generuojamas rezultatas.
  SLN modifikavimo sprendimo (SLN) failas.
  Pridėti prie nuorodos.
  pašalinti iš projekto.
  Išvardinkite įrankius, kuriuos nurodo arba įdiegia projektas.
  "NuGet" teikia papildomų "NuGet" komandų.
  msbuild veikia Microsoft Build Engine (MSBuild).
  vstest paleidžia Microsoft Test Execution komandų eilutės įrankį.
  Parduotuvė saugo nurodytą rinkinį vykdymo laiko saugykloje.
  įrankis, skirtas įdiegti arba naudoti įrankius, kurie išplečia .NET patirtį.
  build-server sąveikauja su serveriu, kurį paleidžia versijos versija.
  Žinynas rodo pagalbą.

Dažniausios parinktys:
  -v|--verbosity nustato komandos detalumo lygį. Leistinos reikšmės yra Q[UIET], M[inimal], N[Ormal], D[etailed] ir diag[nostic].
  -h|--pagalba rodo pagalbą.

Paleiskite komandą dotnet --help, kad gautumėte daugiau informacijos apie komandą.

sdk-options:
  --version rodo naudojamą .NET Core SDK versiją.
  --info rodo .NET Core informaciją.
  --list-sdks, kad būtų rodomas įdiegtas SDK.
  --list-runtimes rodo įdiegtą vykdymo laiką.
  -d|--diagnostika įgalina diagnostikos išvestį.

runtime-options:
  --additionalprobingpath <path> Kelias, kuriame yra zondo politika ir surinkimas zondui.
  --fx-version <version> versija įdiegtos bendros sistemos versijos, kuri bus naudojama programai paleisti.
  --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" įjungtas.
  --additional-deps <path> į kelią į kitus deps.json failus.

Papildomi įrankiai ('dotnet [tool-name] --help' daugiau informacijos):
  dev-certs Kurti ir valdyti kūrimo sertifikatus.
  ef Entity Framework Pagrindiniai komandų eilutės įrankiai.
  sql-cache SQL Server talpyklos komandų eilutės įrankiai.
  user-secrets Tvarkykite kūrimo vartotojo paslaptis.
  žiūrėti Paleiskite failų stebėjimo priemonę, kuri vykdo komandą, kai keičiasi failai.

2. Kompiliacija ir išleidimas


Publikuokite .NET projektą diegimui (įskaitant vykdymo laiką).
DotNet publikuoti


C:\project\dotnet\test1>dotnet publish --help
Naudojimas: dotnet publikuoti [parinktys]

Parinktys:
  -h, --help rodo žinyno informaciją.
  -o, --output <OUTPUT_DIR> naudojamas publikuoto elemento išvesties katalogui įdėti.
  -f, --framework <FRAMEWORK> Tikslinė sistema turi būti paskelbta. Tikslinė sistema turi būti nurodyta projekto dokumente.
  -r, --vykdymo laikas <RUNTIME_IDENTIFIER> publikuokite tam tikro vykdymo laiko projektą. Naudokite tai kurdami savarankiškus diegimus. Numatytasis veiksmas yra publikuoti programą, kuri priklauso nuo sistemos.
  -c, --konfigūracija <CONFIGURATION> naudojama projekto konfigūracijai generuoti. Numatytoji daugumos projektų reikšmė yra "Derinti".
  --version-suffix <VERSION_SUFFIX> apibrėžia $(VersionSuffix) ypatybės reikšmę jūsų projekte.
  --manifest <manifest.xml> Kelias į tikslinį manifesto failą, kuriame yra paketų, kurie turi būti vykdomi per publikavimo veiksmą, sąrašas.
  --no-build nekurkite projekto prieš paskelbdami. Reiškia --no-restore.
  --Savarankiškos pridedamos programos skelbia .NET Core vykdymo laikus, todėl nereikia įdiegti vykdymo laiko tiksliniame kompiuteryje. Jei nurodytas vykdymo laiko identifikatorius, jis pagal numatytuosius nustatymus yra "true".
  --no-restore Vykdydami komandą neatlikite numanomo atkūrimo.
  -v, --verbosity nustato komandos detalumo lygį. Leistinos reikšmės yra Q[UIET], M[inimal], N[Ormal], D[etailed] ir diag[nostic].
  --no-dependencies nustato šią vėliavėlę, kad nepaisytų projekto nuorodų ir atkurtų tik šakninį projektą.
  --force priversti išspręsti visas priklausomybes, net jei paskutinis atkūrimas buvo sėkmingas. Tai prilygsta project.assets.json ištrynimui.
Vykdymo požiūriu, CLI komandos paima savo parametrus ir sukuria iškvietimą į "originalų" MSBuild, kad nustatytų norimas savybes ir norimą tikslą. Norėdami tai geriau iliustruoti, vadovaukitės šia komanda:


Ši komanda publikuoja programą pub aplanke naudojant publikavimo konfigūraciją. Viduje ši komanda reiškia šį MSBuild iškvietimą:
Apibrėžkite tikslinę platformą savo programai


Sukurkite žymę csproj failo sekcijoje (kuri naudojama programos tikslinei platformai apibrėžti) <PropertyGroup> <RuntimeIdentifiers> ir nurodykite kiekvienos paskirties platformos vykdymo laiko identifikatorių (RID). Atkreipkite dėmesį, kad kabliataškiai taip pat reikalingi norint atskirti RID. Vykdymo laiko identifikatorių kataloge ieškokite vykdymo laiko identifikatorių sąrašo.
Pavyzdžiui, šiame <PropertyGroup> skyriuje nurodoma, kad programa veikia 64 bitų "Windows 10" operacinėje sistemoje ir 64 bitų "OS X" 10.11 versijos operacinės sistemos versijoje.


Jei norime generuoti paskirstymą tik žemiau win10 x64 platformos, galime vykdyti šią komandą:

Išvesties aplankas: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, visame aplanke yra 66M, o tai yra gana didelis, kaip parodyta paveikslėlyje žemiau:



Sugeneruokite leidimo paketą pagal centos.7-x64 platformą, yra 70M, kuris taip pat yra gana didelis, pabandykime jį paskelbti centos 7, kad jį vykdytumėte (.NET Core SDK neįdiegtas "CentOS 7" sistemose)。

Sistemos informacija yra tokia:

[root@master ~]# uname -a
Linux meistras 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 ~]# katė /etc/redhat-release
"CentOS Linux" leidimas 7.6.1810 (branduolys)
Įkeliame failą į laikinąjį katalogą ir bandome vykdyti test1 failą, kurį galima išvesti įprastai, taip:

[root@master ~]# mkdir temp
[root@master ~]# cd temp/
[root@master temp]# ./test1
-bash: ./test1: Nepakanka leidimų
[root@master temp]# cd ..
[root@master ~]# chmod -R 777 temp/
[root@master ~]# cd temp/
[root@master temp]# ./test1
Sveikas, pasauli!
[root@master temp]# aidas "http://www.itsvse.com"
http://www.itsvse.com
[root@master temp] #


3、. NET branduolio vykdymo identifikatorius

.NET Core RID, RID yra Runtime Identifier trumpinys. RID reikšmės naudojamos tikslinei platformai, kurioje veikia programa, identifikuoti. .NET paketai juos naudoja konkrečios platformos ištekliams "NuGet" paketuose pavaizduoti. Šios reikšmės yra RID pavyzdžiai: linux-x64, ubuntu.14.04-x64, win7-x64 arba osx.10.12-x64. Paketams su vietinėmis priklausomybėmis RID nurodo platformą, kurioje paketą galima atkurti.

<RuntimeIdentifier> Projekto failo elemente galite nustatyti RID. Keli RID gali būti apibrėžti kaip <RuntimeIdentifiers> sąrašas (atskirti kabliataškiais) projekto failo elementuose.

RID, atstovaujantys konkrečią operacinę sistemą, paprastai vadovaujasi tokiu modeliu: [os]. [versija]-[architektūra]-[papildomi kvalifikatoriai], kur:
  • [OS] yra operacinės sistemos / platformos sistemos pavadinimas. Pavyzdžiui, ubuntu.
  • [version] yra OS versija, kuri suformatuota tašku (.) versijos numeriu. Pavyzdžiui, 15.10. Versijos neturėtų būti rinkodaros leidimai, nes jos paprastai atspindi kelias atskiras operacinės sistemos versijas su skirtingais platformos API periferiniais įrenginiais.
  • [architektūra] yra procesoriaus architektūra. Pavyzdžiui: x86, x64, arm arba arm64.
  • [papildomi kvalifikatoriai] dar labiau diferencijuoja skirtingas platformas. Pavyzdžiui, AOT arba Corert.



Konkretus įvadas:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

4、. "NET Core" sukuria "NuGet" paketus

".NET Standard" ir ".NET Core" visos bibliotekos turėtų būti išleistos kaip "NuGet" paketai. Tiesą sakant, taip skelbiamos ir naudojamos visos .NET standartinės bibliotekos. Tai galima lengvai pasiekti naudojant komandą dotnet pack.



(Pabaiga)




Ankstesnis:2019 m. Nacionalinio valstybės tarnybos egzamino vaizdo pamoka
Kitą:"Visual Studio 2017" prideda MSDN
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com