2017-05-22 15 views
5

Jestem bardzo zadowolony z dotnet CLI i przechodzę przez różne polecenia. Polecenie, które sprawia, że ​​jestem trochę zagubiona, próbuje znaleźć główną różnicę między dotnet pack i publish. Mam na myśli, patrząc na ich opis na tej stronie:co jest główną różnicą między publikowaniem w sieci dotnet a pakietem z wtyczką sieciową

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

co moje rozumienie jest pack tworzy pakiet podczas Publish tworzy pakiet + DLL.

Czy to prawda? Jeśli tak, to po prostu nie używaj po prostu publish i nie używaj pliku DLL, jeśli nie chcemy. Czy to prawda?

Odpowiedz

5

dotnet pack - Tworzy pakiet NuGet twojego kodu.

To jest kluczowa różnica - umożliwi to publikację na http://nuget.org lub na serwerze nuget, który może zostać ściągnięty przez innych programistów lub nawet do użytku z Octopus Deploy.

dotnet publish - Publikuje aplikację zależną od platformy .NET lub samodzielną.

Słowo kluczowe jest "samowystarczalny", może być instalatorem lub folderem, który można wdrożyć, kopiując/wklejając między hostami.

+0

jsut wyjaśnienie "samowystarczalnością" oznacza tu włączenie pliku wykonywalnego. To właśnie ta część sprawia, że ​​'copy-pasteable' jest wykonywalna po prostu przez" copy-paste ". Czy to prawda? – TeaLeave

+1

Popraw, * kompiluje aplikację, odczytuje zależności określone w pliku projektu i publikuje wynikowy zbiór plików do katalogu * – t0mm13b

0

Dodawanie do odpowiedzią @ t0mm13b:

dotnet pack: Wyjście to pakiet, który jest przeznaczone do ponownego wykorzystania w innych projektach.

dotnet publish: Dane wyjściowe mają być wdrożone/"wysłane" - nie jest to pojedynczy "plik pakietu", ale katalog zawierający wszystkie dane wyjściowe projektu.

Powiązane problemy