Tutoriais

https://vvcestudio.com.br/pt/tutorial/dotnet/publicar/
menu

Publicar projeto

Para configurar e implantar uma instância em execução, você precisa descobrir como implantar todos esses arquivos em um servidor e, de alguma forma, configurar algo (por exemplo, um servidor web, tempo de execução, host de serviço...) para chamar seu MySolution.dll.
Todos os seus arquivos estarão na subpasta ‘publish’, por exemplo. ./bin/Release/[framework que sua solução está direcionando]/publish. Os arquivos contidos aqui são tudo o que é necessário para uma instância em execução do seu aplicativo/serviço.
O MySolution.dll é o ponto de entrada para seu aplicativo/serviço e será vinculado automaticamente a todas as outras dependências e configurações armazenadas na pasta de publicação.

PUBLICAR para Linux

PUBLICAR para Linux
x
$ dotnet publish -c Release -o out

sudo : Executar como Admin.
dotnet publish : Comando para publicar.
-c Release : configuração de versão (-c ou --configuration).
-o : Indica que a pasta de saída, onde será grava a publicação (-o ou --output).
out : Nome da pasta de saída “/out”.

Publique o projeto no diretório atual para Ubuntu 64bit:

Publicar projeto
x
$ dotnet publish --framework net8.0 -r linux-x64

Publique o projeto no diretório atual para um Sistema Operacional baseado em Unix 64:

Publicar projeto
x
$ dotnet publish --framework net8.0 --runtime osx-x64

--framework net8.0 : Define que o projeto será publicado para o DotNet V8 (-f ou--framework)
--runtime : Qual sistema operacional o projeto ira rodar (-r ou--runtime)
osx-x64 : indica que o sistema que a aplicação ira rodar é um osx ou unix-x64.

Opções de runtime:

osx-x64 : Indica que o sistema que a aplicação irá rodar é um osx ou unix-x64.
linux-x64 : A maioria das distribuições de área de trabalho como CentOS, Debian, Fedora, Ubuntu e derivados.
linux-musl-x64 : Distribuições leves usando musl, como o Alpine Linux.
linux-musl-arm64 : Usado para criar imagens do Docker para Arm v8 de 64 bits e imagens base minimalistas.
linux-arm : Distribuições Linux em execução em ARM, como Raspbian no Raspberry Pi modelo 2+.
linux-arm64 : Distribuições do Linux em execução no Arm de 64 bits, como Ubuntu Server 64 bits no Raspberry Pi Model 3+.
osx-x64 : A versão mínima do sistema operacional é macOS 10.12 Sierra.
osx-arm64 : macOS.
ios-arm64 : iOS.
android-arm64 : Android.
linux-bionic-arm64 : Distribuições usando o libc biônico do Android, por exemplo, Termux.

PUBLICAR para Win

Exemplo de comando para publicar para Windows:

Publicar para Win
x
c:\myFolder>dotnet publish -c Release -r win-x64 MySolution.sln

-c Release : Configuração de versão (-c ou --configuration).
-r win-x64 : Aplicativo publicado para execução no Windows de 64 bits (-r ou--runtime).
Opções de runtime para Windows : “win-x64”, “win-x86”, “win-arm64”
MySolution.sln : Construir a partir da configuração da solução no arquivo MySolution.sln.

Diretorio1:

myFolder\netcoreapp2.1\win-x64
Onde estão o DLL e executável.

Diretorio2:

myFolder\netcoreapp2.1\win-x64\publish
Onde estão o DLL e executável.

Especifique o caminho para o diretório de saída.

Se não for especificado, o padrão é ./bin/[configuration]/[framework]/publish/ para uma implantação dependente de estrutura ou ./bin/[configuration]/[framework]/[runtime]/publish/ para uma implementação própria. implantação contida.

Exemplo de comando para publicar para Win:

Publicar para Win
x
dotnet publish -c Release -r win-x64 --output ./MyTargetFolder MySolution.sln

-c Release : Garantir que possui uma configuração de versão -c Release, bem como quaisquer outras opções necessárias na linha de comando. (-c ou --configuration).
-r win-x64 : (-r ou--runtime) -r, o que significa que seu aplicativo é direcionado para execução no Windows de 64 bits, e não uma distribuição Linux ou OS X (o que o torna menos portátil, mas tem a vantagem de isolar seu aplicativo seja alterado para um tempo de execução instalado em um servidor no qual você o implementa.). É por isso que você está vendo uma pasta extra win-x64.
--output : Indica que a pasta de saída, onde será grava a publicação (-o ou --output).
./MyTargetFolder : Nome da pasta de saída “./MyTargetFolder”.
MySolution.sln : Você está construindo explicitamente a partir da configuração da solução especificada pelo arquivo de solução MySolution.sln, que é provavelmente a coisa mais confiável a ser feita, pois isso garantirá que quaisquer projetos usados ​​como dependências pela sua solução (o que é uma boa prática típica) serão incluídos na construção/publicação.