dotnet publishdotnet publish

Dieses Thema gilt für: ✓ .NET Core SDK 1.x .NET Core SDK 2.0This topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.0

nameName

dotnet publish: Packt die Anwendung und ihre Abhängigkeiten in einen Ordner für die Bereitstellung auf einem Hostsystem.dotnet publish - Packs the application and its dependencies into a folder for deployment to a hosting system.

ÜbersichtSynopsis

dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--manifest] [--no-build] [--no-dependencies]
    [--no-restore] [-o|--output] [-r|--runtime] [--self-contained] [-v|--verbosity] [--version-suffix]
dotnet publish [-h|--help]

descriptionDescription

dotnet publish kompiliert die Anwendung, liest ihre Abhängigkeiten, die in der Projektdatei angegeben sind, und veröffentlicht die resultierenden Dateien in einem Verzeichnis.dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. Die Ausgabe umfasst die folgenden Objekte:The output includes the following assets:

  • Intermediate Language-Code (IL) in einer Assembly mit einer DLL-Erweiterung.Intermediate Language (IL) code in an assembly with a dll extension.
  • .deps.json-Datei, die alle Abhängigkeiten des Projekts enthält..deps.json file that includes all of the dependencies of the project.
  • Eine .runtime.config.json-Datei, die die freigegebene Laufzeit angibt, die die Anwendung erwartet, sowie andere Konfigurationsoptionen für die Laufzeit (z.B. Typ der automatischen Speicherbereinigung)..runtime.config.json file that specifies the shared runtime that the application expects, as well as other configuration options for the runtime (for example, garbage collection type).
  • Die Abhängigkeiten der Anwendung, die aus dem NuGet-Cache in den Ausgabeordner kopiert werden.The application's dependencies, which are copied from the NuGet cache into the output folder.

Die Ausgabe des Befehls dotnet publish steht für die Bereitstellung zur Ausführung auf einem Hostsystem bereit (z.B. ein Server, Computer, Mac oder Laptop).The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution. Es ist die einzige offiziell unterstützte Methode zum Vorbereiten der Anwendung für die Bereitstellung.It's the only officially supported way to prepare the application for deployment. Je nach Art der Bereitstellung, die im Projekt angegeben ist, hat das Hostsystem die freigegebene .NET Core-Laufzeit installiert oder nicht.Depending on the type of deployment that the project specifies, the hosting system may or may not have the .NET Core shared runtime installed on it. Weitere Informationen finden Sie unter .NET Core Anwendungsbereitstellung.For more information, see .NET Core Application Deployment. Die Verzeichnisstruktur der veröffentlichten Anwendung finden Sie unter Directory structure (Verzeichnisstruktur).For the directory structure of a published application, see Directory structure.

Hinweis

Ab .NET Core 2.0 müssen Sie dotnet restore nicht mehr ausführen, da der Befehl implizit von allen Befehlen, z.B. dotnet build und dotnet run, ausgeführt wird, die eine Wiederherstellung erfordern.Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands, such as dotnet build and dotnet run, that require a restore to occur. In bestimmten Fällen eignet sich der Befehl dennoch. Dies ist etwa bei Szenarios der Fall, in denen das Ausführen einer expliziten Wiederherstellung sinnvoll ist. Beispiele hierfür sind Continuous Integration-Builds in Visual Studio Team Services oder Buildsystemen, die den Zeitpunkt für die Wiederherstellung explizit festlegen müssen.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Visual Studio Team Services or in build systems that need to explicitly control the time at which the restore occurs.

Dieser Befehl unterstützt auch die dotnet restore-Optionen, wenn sie in der Langform übergeben werden (z.B. --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). Optionen in Kurzform wie z.B. -s werden nicht unterstützt.Short form options, such as -s, are not supported.

ArgumenteArguments

PROJECT

Das zu veröffentlichende Projekt.The project to publish. Wenn nicht angegeben, wird standardmäßig das aktuelle Verzeichnis gewählt.If not specified, it defaults to the current directory.

OptionenOptions

-c|--configuration {Debug|Release}

Legt die Buildkonfiguration fest.Defines the build configuration. Der Standardwert ist Debug.The default value is Debug.

-f|--framework <FRAMEWORK>

Veröffentlicht die Anwendung für das angegebene Zielframework.Publishes the application for the specified target framework. Sie müssen das Zielframework in der Projektdatei angeben.You must specify the target framework in the project file.

--force

Erzwingt das Auflösen aller Abhängigkeiten, auch wenn die letzte Wiederherstellung erfolgreich war.Forces all dependencies to be resolved even if the last restore was successful. Dieses Flag anzugeben, entspricht dem Löschen der Datei project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

-h|--help

Druckt eine kurze Hilfe für den Befehl.Prints out a short help for the command.

--manifest <PATH_TO_MANIFEST_FILE>

Gibt mindestens ein Zielmanifest an, das verwendet wird, um die Menge an mit der App veröffentlichten Paketen zu senken.Specifies one or several target manifests to use to trim the set of packages published with the app. Die Manifestdatei ist Teil der Ausgabe des dotnet store-Befehls.The manifest file is part of the output of the dotnet store command. Um mehrere Manifeste anzugeben, fügen Sie die --manifest-Option für jedes Manifest hinzu.To specify multiple manifests, add a --manifest option for each manifest. Diese Option ist am dem .NET Core 2.0 SDK verfügbar.This option is available starting with .NET Core 2.0 SDK.

--no-build

Erstellt das Projekt nicht vor der Veröffentlichung.Doesn't build the project before publishing. Das --no-restore-Flag wird implizit festgelegt.It also implicit sets the --no-restore flag.

--no-dependencies

Ignoriert Verweise zwischen Projekten und stellt nur das zum Erstellen angegebene Stammprojekt wieder her.Ignores project-to-project references and only restores the root project.

--no-restore

Führt keine implizite Wiederherstellung aus, wenn der Befehl ausgeführt wird.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

Gibt den Pfad für das Ausgabeverzeichnis an.Specifies the path for the output directory. Wenn nicht angegeben, wird standardmäßig ./bin/[configuration]/[framework]/publish/ für eine Framework-abhängige Bereitstellung oder ./bin/[configuration]/[framework]/[runtime]/publish/ für eine eigenständige Bereitstellung gewählt.If not specified, it defaults to ./bin/[configuration]/[framework]/publish/ for a framework-dependent deployment or ./bin/[configuration]/[framework]/[runtime]/publish/ for a self-contained deployment. Bei einem relativen Pfad ist das generierte Ausgabeverzeichnis relativ zum Speicherort der Projektdatei anstatt zum aktuellen Arbeitsverzeichnis.If the path is relative, the output directory generated is relative to the project file location, not to the current working directory.

--self-contained

Veröffentlicht die .NET Core-Runtime mit Ihrer Anwendung, sodass die Runtime nicht auf dem Zielcomputer installiert werden muss.Publishes the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Wenn ein Runtimebezeichner angegeben ist, ist der Standardwert true.If a runtime identifier is specified, its default value is true. Weitere Informationen zu den verschiedenen Bereitstellungstypen finden Sie unter .NET Core application deployment (Bereitstellung von .NET Core-Anwendungen).For more information about the different deployment types, see .NET Core application deployment.

-r|--runtime <RUNTIME_IDENTIFIER>

Veröffentlicht die Anwendung für eine bestimmte Laufzeit.Publishes the application for a given runtime. Wird bei der Erstellung einer eigenständigen Bereitstellung (Self-contained deployments, SCD) verwendet.This is used when creating a self-contained deployment (SCD). Eine Liste der Runtime-IDs (RIDs) finden Sie im RID-Katalog.For a list of Runtime Identifiers (RIDs), see the RID catalog. Standardmäßig wird eine Framework-abhängige Bereitstellung (FDD) veröffentlicht.Default is to publish a framework-dependent deployment (FDD).

-v|--verbosity <LEVEL>

Legt den Ausführlichkeitsgrad für den Befehl fest.Sets the verbosity level of the command. Zulässige Werte sind q[uiet], m[inimal], n[ormal], d[etailed] und diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

--version-suffix <VERSION_SUFFIX>

Definiert das Versionssuffix zum Ersetzen des Sternchens (*) im Versionsfeld der Projektdatei.Defines the version suffix to replace the asterisk (*) in the version field of the project file.

BeispieleExamples

Veröffentlicht das Projekt im aktuellen Verzeichnis:Publish the project in the current directory:

dotnet publish

Veröffentlichen Sie die Anwendung unter Verwendung der angegebenen Projektdatei:Publish the application using the specified project file:

dotnet publish ~/projects/app1/app1.csproj

Veröffentlichen Sie das Projekt aus dem aktuellen Verzeichnis unter Verwendung des netcoreapp1.1-Frameworks:Publish the project in the current directory using the netcoreapp1.1 framework:

dotnet publish --framework netcoreapp1.1

Veröffentlichen der aktuellen Anwendung mithilfe des netcoreapp1.1-Frameworks und der Laufzeit für OS X 10.10 (Sie müssen diese RID in der Projektdatei auflisten).Publish the current application using the netcoreapp1.1 framework and the runtime for OS X 10.10 (you must list this RID in the project file).

dotnet publish --framework netcoreapp1.1 --runtime osx.10.11-x64

Veröffentlichen sie die aktuelle Anwendung, aber fügen Sie während der Wiederherstellung keine Projekt-zu-Projekt-Verweise hinzu, sondern nur das Stammprojekt (.NET Core SDK 2.0 und spätere Versionen):Publish the current application but don't restore project-to-project (P2P) references, just the root project during the restore operation (.NET Core SDK 2.0 and later versions):

dotnet publish --no-dependencies

Siehe auchSee also