в чем основное отличие dotnet publish от dotnet pack

Я очень рада dotnet CLI и я прохожу разные команды. Команда, которая меня немного смущает, пытается выяснить основную разницу между dotnet pack и publish. Я имею в виду, глядя на их описание на этой странице:

https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet

как я понимаю, это pack создает пакет while Publish создает пакет + DLL.

это правильно? Если да, то почему бы просто не использовать publish все время и не использовать файл DLL, если мы не хотим. Это правда?

2 ответов


dotnet pack - создает пакет NuGet вашего кода.

это ключевое отличие - это позволит опубликовать в http://nuget.org, или на сервер nuget, который может быть снят другими разработчиками или даже для использования с Octopus Deploy.

dotnet publish -публикует зависящее от .NET framework или автономное приложение.

Ключевое слово "автономный", возможно, установщик или папка, которая может быть производится путем копирования/вставки между хостами.


добавление к ответу @t0mm13b:

dotnet pack: вывод представляет собой пакет, который является предназначены для повторного использования другие проекты.

dotnet publish: вывод должен быть развернут / "отправлен" - это не один" файл пакета", а каталог со всеми выводами проекта.