Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 23453|Antwort: 0

[.NET Core] [DotNet Einführung (2)]. NET Core Kompilation und Veröffentlichung

[Link kopieren]
Veröffentlicht am 21.01.2019 17:10:26 | | | |
1. NET Core Kommandozeilenschnittstelle (CLI) Werkzeug
project.json wurde veraltet und durch eine .csproj-Datei ersetzt, die im frühen .NET-Kern project.json als Projektkonfigurationsdatei verwendet wurde, und es wird geschätzt, dass Microsoft sie nach Entdeckung einiger Probleme eingestellt hat und MSBuild weiterhin als .net-Kompilierungstool verwendet wurde.

MSBuild führt ein:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017

Wenn wir VS-Kompilierung und -Generierung durchführen, hilft uns VS nur, das MSBuild-Tool aufzurufen, was bedeutet, dass wir beim Kompilieren des .NET-Projekts das VS-Tool gar nicht installieren müssen.

Der .NET Core CLI-Werkzeugbefehl lautet wie folgt:

.NET Kommandozeilen-Werkzeuge (2.1.301)
Nutzung: dotnet [Laufzeitoptionen] [Pfad zur Anwendung]
Nutzung: dotnet [sdk-options] [Befehl] [Argumente] [Befehl-Optionen]

path-to-application:
  Der Pfad zur Anwendung .dll Datei, die ausgeführt werden soll.

SDK-Befehle:
  new initialisiert das .NET-Projekt.
  stellt die im .NET-Projekt festgelegten Abhängigkeiten wieder her.
  das .NET-Projekt sofort ausführen und ausführen.
  .NET-Projekt bauen.
  publish veröffentlicht ein .NET-Projekt zur Bereitstellung (einschließlich der Laufzeit).
  Test führt Einheitstests mit dem im Projekt festgelegten Testrunner aus.
  Pack, um ein NuGet-Paket zu erstellen.
  Migrate project.json-basierte Projekte zu MSBuild-basierten Projekten.
  Saubere, saubere erzeugte Ausgabe.
  SLN Modification Solution (SLN)-Datei.
  Zur Referenz hinzufügen.
  Aus dem Projekt entfernen.
  Liste die Tools auf, auf die das Projekt verweist oder die installiert werden.
  NuGet bietet zusätzliche NuGet-Befehle.
  msbuild läuft mit der Microsoft Build Engine (MSBuild).
  vstest führt das Microsoft Test Execution Kommandozeilen-Tool aus.
  Store speichert die angegebene Assembly im Laufzeitspeicher.
  Werkzeug, um Tools zu installieren oder zu nutzen, die das .NET-Erlebnis erweitern.
  Build-Server interagiert mit dem Server, der von der Build-Version gestartet wird.
  Hilfesendungen helfen.

Häufige Optionen:
  -v|--Verbosität bestimmt den Detailgrad des Befehls. Die erlaubten Werte sind Q[UIET], M[inimal], N[Ormal], D[etailed] und diag[nostic].
  -h|--Hilfe-Shows helfen.

Führe den Dotnet-Befehl aus – hilf dir, mehr Informationen über den Befehl zu bekommen.

sdk-options:
  --Version zeigt die verwendete Version des .NET Core SDK.
  --info zeigt .NET Core-Informationen an.
  --list-sdks, um das installierte SDK anzuzeigen.
  --list-runtimes zeigt die installierte Laufzeit an.
  -d|--Diagnostik ermöglicht diagnostische Ausgabe.

runtime-options:
  --additionalprobingpath <path> Der Pfad, der die Probe-Policy und die Assembly zu probe enthält.
  --FX-Version <version> der installierten Version des gemeinsamen Frameworks, die zur Ausführung der Anwendung verwendet werden soll.
  --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" ist aktiviert.
  --additional-deps <path> auf den Pfad zu anderen deps.json-Dateien.

Zusätzliche Werkzeuge ('dotnet [tool-name] --help' für weitere Informationen):
  Entwicklungszertifikate Erstellen und verwalten Entwicklungszertifikate.
  ef Entity Framework Core Kommandozeilen-Werkzeuge.
  sql-cache SQL Server Cache-Kommandozeilen-Werkzeuge.
  Benutzergeheimnisse Verwalten Entwicklungsbenutzergeheimnisse.
  Sieh dir vor, Start a File Watcher, der einen Befehl ausführt, wenn Dateien geändert werden.

2. Kompilation und Veröffentlichung


Veröffentlichen Sie ein .NET-Projekt zur Bereitstellung (einschließlich der Laufzeit).
dotnet publish


C:\project\dotnet\test1>dotnet publish --help
Verwendung: dotnet publish [Optionen]

Optionen:
  -H, --Hilfeanzeigen Hilfeinformationen.
  -o, --output <OUTPUT_DIR> wird verwendet, um das Ausgabeverzeichnis des veröffentlichten Eintrags zu platzieren.
  -f, --Rahmenwerk <FRAMEWORK> Das Zielrahmenwerk, das veröffentlicht werden soll. Das Zielframework muss im Projektdokument angegeben werden.
  -r, --Runtime <RUNTIME_IDENTIFIER> veröffentlichen Sie das Projekt für eine gegebene Laufzeit. Verwenden Sie dies beim Erstellen eigenständiger Deployments. Die Standardaktion ist, eine App zu veröffentlichen, die vom Framework abhängt.
  -c, --Konfiguration <CONFIGURATION> wird verwendet, um die Projektkonfiguration zu generieren. Der Standardwert für die meisten Projekte ist "Debug".
  --version-Suffix <VERSION_SUFFIX> definiert den Wert der $(VersionSuffix)-Eigenschaft in Ihrem Projekt.
  --manifest <manifest.xml> Pfad zur Ziel-Manifestdatei, der eine Liste von Paketen enthält, die im Publizierungsschritt ausgeführt werden sollen.
  --nein-bauen Bauen Sie das Projekt nicht vor der Veröffentlichung. Impliziert – keine Wiederherstellung.
  --eigenständige begleitende Anwendungen veröffentlichen .NET Core-Laufzeiten, wodurch die Installation der Laufzeit auf der Zielmaschine entfällt. Wenn ein Laufzeitbezeichner angegeben ist, steht dieser standardmäßig auf "true".
  --no-restore Führen Sie keine implizite Wiederherstellung während der Ausführung des Befehls aus.
  -v, --Wortreichheit bestimmt den Detailgrad des Befehls. Die erlaubten Werte sind Q[UIET], M[inimal], N[Ormal], D[etailed] und diag[nostic].
  --no-dependencies setzt dieses Flag so, dass Projekt-zu-Projekt-Referenzen ignoriert und nur das Root-Projekt wiederhergestellt wird.
  --gezwungen, alle Abhängigkeiten zu erzwingen, selbst wenn die letzte Wiederherstellung erfolgreich war. Das entspricht dem Löschen project.assets.json.
Aus Ausführungssicht nehmen CLI-Befehle deren Parameter und erstellen einen Aufruf an das "ursprüngliche" MSBuild, um die gewünschten Eigenschaften und das gewünschte Ziel zum Ausführen festzulegen. Um dies besser zu veranschaulichen, siehe folgenden Befehl:


Dieser Befehl veröffentlicht die Anwendung im Public-Ordner über die Public-Konfiguration. Intern übersetzt sich dieser Befehl zu folgendem MSBuild-Aufruf:
Definieren Sie die Zielplattform für Ihre Anwendung


Erstellen Sie einen Tag im Abschnitt der csproj-Datei (der zur Definition der Zielplattform Ihrer App verwendet wird) <PropertyGroup> <RuntimeIdentifiers> und geben Sie dann die Laufzeit-Kennung (RID) für jede Zielplattform an. Beachten Sie, dass auch Semikolons erforderlich sind, um RIDs zu trennen. Prüfen Sie den Runtime Identifier Catalog für eine Liste der Laufzeit-Kennungen.
Zum Beispiel zeigt der folgende <PropertyGroup> Abschnitt an, dass die App auf einem 64-Bit-Betriebssystem Windows 10 und einer 64-Bit-Version Version 10.11 von OS X läuft.


Wenn wir nur eine Verteilung unterhalb der win10 x64-Plattform erzeugen wollen, können wir folgenden Befehl ausführen:

Ausgabeordner: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, der gesamte Ordner hat 66M, was ziemlich groß ist, wie in der untenstehenden Abbildung gezeigt:



Generiere das Release-Paket unter der centos.7-x64-Plattform, es gibt 70M, was ebenfalls ziemlich groß ist, lass uns versuchen, es auf centos 7 zu veröffentlichen, um es auszuführen (Das .NET Core SDK ist auf CentOS 7-Systemen nicht installiert)。

Die Systeminformationen sind wie folgt:

[root@master ~]# uname -a
Linux Master 3.10.0-862.el7.x86_64 #1 SMP Fr 20. Apr 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@master ~]# Katze /etc/redhat-release
CentOS Linux Version 7.6.1810 (Core)
Wir laden die Datei in das temp-Verzeichnis hoch und versuchen, die test1-Datei auszuführen, die normal ausgegeben werden kann, wie folgt:

[root@master ~]# mkdir temp
[root@master ~]# CD Temp/
[root@master Temperatur]# ./test1
-bash: ./test1: Nicht genug Berechtigungen
[root@master Temp]# CD ..
[root@master ~]# chmod -R 777 Temperatur/
[root@master ~]# CD Temp/
[root@master Temperatur]# ./test1
Hallo Welt!
[root@master Temp]# Echo "http://www.itsvse.com"
http://www.itsvse.com
[root@master Tempo] #


3、. NET Core Run Identifier

.NET Core RID, RID steht für Runtime Identifier. RID-Werte werden verwendet, um die Zielplattform zu identifizieren, auf der die Anwendung läuft. .NET-Pakete verwenden sie, um plattformspezifische Assets in NuGet-Paketen darzustellen. Die folgenden Werte sind Beispiele für RID: linux-x64, ubuntu.14.04-x64, win7-x64 oder osxx.10.12-x64. Für Pakete mit nativen Abhängigkeiten gibt das RID die Plattform an, auf der das Paket wiederhergestellt werden kann.

<RuntimeIdentifier> Du kannst ein RID im Element der Projektdatei festlegen. Mehrere RIDs können als <RuntimeIdentifiers> Liste (durch Semikolons getrennt) in den Elementen einer Projektdatei definiert werden.

RIDs, die ein bestimmtes Betriebssystem repräsentieren, folgen typischerweise folgendem Muster: [os]. [Version]-[Architektur]-[zusätzliche Qualifikationen], wobei:
  • [OS] ist der Name des Betriebssystems/Plattformsystems. Zum Beispiel Ubuntu.
  • [Version] ist die OS-Version, die mit einer Punkt-(.) Versionsnummer formatiert ist. Zum Beispiel 15,10. Versionen sollten keine Marketingveröffentlichungen sein, da sie typischerweise mehrere separate Versionen des Betriebssystems mit unterschiedlichen Plattform-API-Peripheriegeräten darstellen.
  • [Architektur] ist die Prozessorarchitektur. Zum Beispiel: x86, x64, Arm oder Arm64.
  • [zusätzliche Einschränkungen] Unterscheide weiter zwischen verschiedenen Plattformen. Zum Beispiel AOT oder Corert.



Konkrete Einleitung:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

4、. NET Core erstellt NuGet-Pakete

Für .NET Standard und .NET Core sollten alle Bibliotheken als NuGet-Pakete veröffentlicht werden. Tatsächlich werden alle .NET-Standardbibliotheken so veröffentlicht und genutzt. Dies lässt sich leicht mit dem Befehl Dotnet-Pack erreichen.



(Ende)




Vorhergehend:Video-Tutorial zur National Civil Service Examination 2019
Nächster:Visual Studio 2017 fügt MSDN hinzu
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com