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)
|