Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 23453|Antwoord: 0

[.NET Core] [DotNet Introductie (2)]. NET Core-compilatie en uitgave

[Link kopiëren]
Geplaatst op 21-01-2019 17:10:26 | | | |
1. NET Core command line interface (CLI) tool
Werd project.json afgeschaft en vervangen door een .csproj-bestand, dat project.json werd gebruikt als projectconfiguratiebestand in de vroege .NET-core, en men schat dat Microsoft het heeft afgeschaft na het ontdekken van enkele problemen, en MSBuild nog steeds werd gebruikt als .net-compilatietool.

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

Wanneer we VS-compilatie en -generatie uitvoeren, helpt VS ons gewoon om de MSBuild-tool aan te roepen, wat betekent dat we bij het compileren van het .NET-project helemaal niet de VS-tool hoeven te installeren.

Het .NET Core CLI-toolcommando is als volgt:

.NET Commandoregeltools (2.1.301)
Gebruik: dotnet [runtime-opties] [pad naar applicatie]
Gebruik: dotnet [sdk-options] [commando] [argumenten] [commando-opties]

path-to-application:
  Het pad naar de applicatie .dll bestand dat uitgevoerd moet worden.

SDK-commando's:
  new initialiseert het .NET-project.
  herstel de afhankelijkheden die in het .NET-project zijn gespecificeerd.
  het .NET-project direct uitvoeren en uitvoeren.
  build .NET-project.
  publish publiceert een .NET-project voor implementatie (inclusief de runtime).
  Test voert unittests uit met de testrunner die in het project is gespecificeerd.
  pak om een NuGet-pakket te maken.
  migreren project.json-gebaseerde projecten naar MSBuild-gebaseerde projecten.
  Schone, schone output gegenereerd.
  SLN Modification Solution (SLN) bestand.
  Voeg toe aan de referentie.
  Verwijder het uit het project.
  Vermeld de tools waar het project naar verwijst of die worden geïnstalleerd.
  NuGet biedt extra NuGet-commando's.
  msbuild draait de Microsoft Build Engine (MSBuild).
  vstest draait de Microsoft Test Execution commandoregeltool.
  Store slaat de gespecificeerde assemblage op in de runtime store.
  tool om tools te installeren of te gebruiken die de .NET-ervaring uitbreiden.
  Build-server werkt samen met de server die door de buildversie wordt gestart.
  Helpshows helpen.

Veelvoorkomende opties:
  -v|--omzettelijkheid bepaalt het detailniveau van het commando. De toegestane waarden zijn Q[UIET], M[inimal], N[Ormal], D[etailed] en diag[nostic].
  -h|--helpshows helpen.

Voer het dotnet-commando uit -- help om meer informatie over het commando te krijgen.

sdk-options:
  --versie toont de versie van de .NET Core SDK die in gebruik is.
  --info toont .NET Core-informatie.
  --list-sdks om de geïnstalleerde SDK weer te geven.
  --list-runtimes toont de geïnstalleerde runtime.
  -d|--diagnostiek maakt diagnostische output mogelijk.

runtime-options:
  --additionalprobingpath <path> Het pad dat het probebeleid en de assemblage bevat om te probeen.
  --fx-versie <version> van de geïnstalleerde versie van het gedeelde framework om de applicatie uit te voeren.
  --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" is ingeschakeld.
  --additional-deps <path> op het pad naar andere deps.json bestanden.

Aanvullende tools ('dotnet [tool-name] --help' voor meer informatie):
  ontwikkelaarscertificaten Creëren en beheren ontwikkelcertificaten.
  ef Entity Framework Core commandoregeltools.
  sql-cache SQL Server cache-commandoregeltools.
  user-secrets Beheer ontwikkelingsgebruikersgeheimen.
  Kijk Start een file watcher die een commando uitvoert wanneer bestanden veranderen.

2. Compilatie en uitgave


Publiceer een .NET-project voor deployment (inclusief de runtime).
dotnet publish


C:\project\dotnet\test1>dotnet publish --help
Gebruik: dotnet publish [opties]

Opties:
  -H, --Help-displays Help-informatie.
  -o, --output <OUTPUT_DIR> wordt gebruikt om de uitvoermap van het gepubliceerde item te plaatsen.
  -f, --framework <FRAMEWORK> Het doelraamwerk dat gepubliceerd moet worden. Het doelkader moet worden gespecificeerd in het projectdocument.
  -r, --runtime <RUNTIME_IDENTIFIER> publiceer het project voor een bepaalde runtime. Gebruik dit bij het maken van zelfstandige deployments. De standaardactie is het publiceren van een app die afhankelijk is van het framework.
  -c, --configuratie <CONFIGURATION> wordt gebruikt om de configuratie van het project te genereren. De standaardwaarde voor de meeste projecten is "Debug".
  --version-suffix <VERSION_SUFFIX> definieert de waarde van de $(VersionSuffix)-eigenschap in je project.
  --manifest <manifest.xml> Pad naar het doelmanifestbestand met een lijst van pakketten die via de publicatiestap uitgevoerd moeten worden.
  --no-build het project niet vóór publicatie. Impliceert --no-restore.
  --zelfstandige begeleidende applicaties publiceren .NET Core-runtimes, waardoor het installeren van de runtime op de doelmachine voorkomt. Als een runtime-identificatie wordt opgegeven, staat deze standaard op "true".
  --no-restore Voer geen impliciete restore uit tijdens het uitvoeren van het commando.
  -v, --omzettelijkheid bepaalt het detailniveau van het commando. De toegestane waarden zijn Q[UIET], M[inimal], N[Ormal], D[etailed] en diag[nostic].
  --no-dependencies stelt deze vlag zo in dat project-tot-project referenties worden genegeerd en alleen het rootproject herstelt.
  --dwingen om alle afhankelijkheden te forceren om op te lossen, zelfs als de laatste herstelprocedure succesvol is geweest. Dit is gelijk aan het verwijderen van project.assets.json.
Vanuit uitvoeringsperspectief nemen CLI-commando's hun parameters en construeren een aanroep naar de "oorspronkelijke" MSBuild om de gewenste eigenschappen en het gewenste doel te bepalen. Om dit beter te illustreren, zie het volgende commando:


Dit commando publiceert de applicatie naar de pub-map met behulp van de Publiceer-configuratie. Intern vertaalt dit commando naar de volgende MSBuild-aanroep:
Definieer het doelplatform voor je applicatie


Maak een tag aan in het gedeelte van het csproj-bestand (dat wordt gebruikt om het doelplatform voor je app te definiëren) <PropertyGroup> <RuntimeIdentifiers> en specificeer vervolgens de runtime-identificatie (RID) voor elk doelplatform. Let op dat puntkomma's ook vereist zijn om RID's te scheiden. Bekijk de Runtime Identifier Catalog voor een lijst met runtime-identifiers.
Bijvoorbeeld, de volgende <PropertyGroup> sectie geeft aan dat de app draait op een 64-bits Windows 10-besturingssysteem en een 64-bits OS X versie 10.11-versie van het besturingssysteem.


Als we alleen een distributie onder het win10 x64-platform willen genereren, kunnen we het volgende commando uitvoeren:

Uitvoermap: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, de hele map heeft 66M, wat vrij groot is, zoals te zien is in de onderstaande figuur:



Genereer het releasepakket onder het centos.7-x64 platform, er is 70M, wat ook behoorlijk groot is, laten we proberen het op centos 7 te publiceren om het uit te voeren (De .NET Core SDK is niet geïnstalleerd op CentOS 7-systemen)。

De systeeminformatie is als volgt:

[root@master ~]# uname -a
Linux master 3.10.0-862.el7.x86_64 #1 SMP vr 20 apr 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@master ~]# kat /etc/redhat-release
CentOS Linux-release 7.6.1810 (Core)
We uploaden het bestand naar de temp-map en proberen het test1-bestand uit te voeren, dat normaal kan worden uitgevoerd, als volgt:

[root@master ~]# mkdir temp
[root@master ~]# cd temp/
[root@master temp]# ./test1
-bash: ./test1: Niet genoeg permissies
[root@master temp]# cd ..
[root@master ~]# chmod -R 777 temperatuur/
[root@master ~]# cd temp/
[root@master temp]# ./test1
Hallo mensen!
[root@master temperatuur]# echo "http://www.itsvse.com"
http://www.itsvse.com
[root@master temp] #


3、. NET Core Run Identifier

.NET Core RID, RID staat voor Runtime Identifier. RID-waarden worden gebruikt om het doelplatform te identificeren waarop de applicatie draait. .NET-pakketten gebruiken ze om platformspecifieke assets in NuGet-pakketten weer te geven. De volgende waarden zijn voorbeelden van RID: linux-x64, ubuntu.14.04-x64, win7-x64 of osx.10.12-x64. Voor pakketten met native afhankelijkheden specificeert de RID het platform waarop het pakket kan worden hersteld.

<RuntimeIdentifier> Je kunt een RID instellen in het element van het projectbestand. Meerdere RID's kunnen worden gedefinieerd als een <RuntimeIdentifiers> lijst (gescheiden door puntkomma's) in de elementen van een projectbestand.

RID's die een specifiek besturingssysteem vertegenwoordigen, volgen doorgaans het volgende patroon: [os]. [versie]-[architectuur]-[aanvullende nuanceringen], waar:
  • [OS] is de naam van het besturingssysteem/platformsysteem. Bijvoorbeeld Ubuntu.
  • [versie] is de OS-versie, die is opgemaakt met een puntje (.) versienummer. Bijvoorbeeld, 15.10. Versies zouden geen marketingreleases moeten zijn, omdat ze doorgaans meerdere afzonderlijke versies van het besturingssysteem vertegenwoordigen met verschillende platform-API-randapparatuur.
  • [architectuur] is de processorarchitectuur. Bijvoorbeeld: x86, x64, arm, of arm64.
  • [extra kwalificaties] Onderscheid verder tussen verschillende platforms. Bijvoorbeeld AOT of Corert.



Specifieke inleiding:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

4、. NET Core maakt NuGet-pakketten aan

Voor .NET Standard en .NET Core moeten alle bibliotheken als NuGet-pakketten worden uitgebracht. Sterker nog, zo worden alle .NET-standaardbibliotheken gepubliceerd en gebruikt. Dit kan eenvoudig worden bereikt met het dotnet pack-commando.



(Einde)




Vorig:2019 Nationaal Ambtenarenexamen Videotutorial
Volgend:Visual Studio 2017 voegt MSDN toe
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com