Como executar o aplicativo de console do .NET Core na linha de comando


Respostas:


273

Se for um aplicativo dependente da estrutura (o padrão), você o executará dotnet yourapp.dll.

Se é um aplicativo independente, você o executa usando yourapp.exeno Windows e ./yourappno Unix.

Para obter mais informações sobre as diferenças entre os dois tipos de aplicativos, consulte o artigo Implantação de aplicativos .NET Core no .Net Docs.


22
É incrível quanto tempo demorei para descobrir isso. Estou tentando todos os tipos de comandos "dotnet run", etc. Este é o primeiro lugar que encontrei em muitas pesquisas que fornecem o uso correto do dotnet para executar um aplicativo de console. Por que a Microsoft tornou o .NET Core tão amigável para o desenvolvedor?
— Glen Thomas

2
@GlenThomas Se você deseja executar um aplicativo que está desenvolvendo, use dotnet run. Além disso, onde você olhou? Onde você esperaria essa informação?
— svick

1
"dotnet run" não parece mais ser o caso dos projetos principais do .NET que usam a instalação mais recente do MSBuild csproj, em vez dos arquivos project.json antigos.
— Glen Thomas

1
@GlenThomas Isso não é verdade, dotnet runfunciona da mesma forma para os novos projetos csproj e para o project.json.
— Svick

5
@GlenThomas, não tenho certeza se esse é o problema que você estava tendo, mas ao tentar usar dotnet run, verifique se você está no diretório do projeto, não no diretório da solução.
— Ryan Lundy

46

Você pode facilmente criar um EXE (para Windows) sem usar nenhum comando de criação enigmático. Você pode fazer isso corretamente no Visual Studio.

  1. Clique com o botão direito do mouse no Console App Project e selecione Publicar .
  2. Uma nova página será aberta (captura de tela abaixo)
  3. Clique em Configurar ...
  4. Em seguida, altere o Modo de implantação para Autônomo ou dependente da estrutura . O .NET Core 3.0 apresenta uma implantação de arquivo único, que é um único executável.
  5. Use "dependente da estrutura" se você souber que a máquina de destino possui um tempo de execução do .NET Core, pois produzirá menos arquivos para instalar.
  6. Se agora você visualizar a pasta bin no explorer, encontrará o arquivo .exe.
  7. Você terá que implantar o exe junto com qualquer arquivo de configuração e DLL.

Publicação de aplicativo do console


5
Sim. Há o EXE - junto com outros 217 arquivos (api-ms-win-core-namedpipe-l1-1-0.dll, etc). Existe alguma maneira de agrupar isso em um único EXE?
— Elton

1
Boa pergunta @Elton. Eu não sei. AFAIK você tem que implantar todas as DLLs.
— Jess

2
Eu pensaria que o fato de estar configurado para ser independente exigiria que todas essas DLLs estivessem lá. Se você não quer que eles existem, o modo de implantação, provavelmente precisa ser Framework Dependente
— kippermand

1
Você fez minha sexta-feira!
— 22619 Robin Robin Johnson

20

Você também pode executar seu aplicativo como qualquer outro aplicativo de console, mas somente após a publicação.

Vamos supor que você tenha o aplicativo de console simples chamado MyTestConsoleApp. Abra o console do gerenciador de pacotes e execute o seguinte comando:

dotnet publish -c Debug -r win10-x64 

-c flag significa que você deseja usar a configuração de depuração (em outro caso, você deve usar o valor Release) - r flag significa que seu aplicativo será executado na plataforma Windows com arquitetura x64.

Quando o procedimento de publicação terminar, você verá o arquivo * .exe localizado no diretório bin / Debug / publish.

Agora você pode chamá-lo via ferramentas de linha de comando. Então abra a janela do CMD (ou terminal), vá para o diretório em que seu arquivo * .exe está localizado e escreva o próximo comando:

>> MyTestConsoleApp.exe argument-list

Por exemplo:

>> MyTestConsoleApp.exe --input some_text -r true

2

Com dotnetcore3.0, você pode empacotar toda a solução em um arquivo executável usando a PublishSingleFilepropriedade

-p:PublishSingleFile=True

Executáveis ​​de arquivo único de origem

Um exemplo Self Contained, ReleaseOSX executável:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

Um exemplo Self Contained, DebugLinux 64bit executável:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

A compilação do Linux é independente da distribuição e eu os encontrei trabalhando no Ubuntu 18.10, CentOS 7.7 e Amazon Linux 2.

Um executável autônomo inclui o Dotnet Runtime e o Runtime não precisa ser instalado em uma máquina de destino. Os executáveis ​​publicados são salvos em:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ no Linux, OSX e

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ no Windows.


Você também pode adicionar a configuração ao arquivo csproj:<PublishSingleFile>true</PublishSingleFile>
— Mahdi Ataollahi

0

Usando o CMD, você pode executar um projeto do núcleo .net do console se o SDK do .net core estiver instalado em sua máquina:

Para executar o projeto do console usando a linha de comando do Windows, escolha o caminho específico do seu diretório e digite o seguinte comando

dotnet run


0

antes de executar no prompt do cmd, verifique se "appsettings.json" possui os mesmos valores que "appsettings.Development.json".

No prompt de comando, vá até a pasta bin / debug / netcoreapp2.0. em seguida, execute "dotnet applicationname.dll"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.