Compilando / Executando um Arquivo de Origem C # no Prompt de Comando


Respostas:


139

CSC.exe é o compilador CSharp incluído no .NET Framework e pode ser usado para compilar no prompt de comando. A saída pode ser um ".exe" executável, se você usar "/ target: exe" ou uma DLL; Se você usar / target: library, o CSC.exe será encontrado no diretório .NET Framework,

por exemplo, para .NET 3.5 c:\windows\Microsoft.NET\Framework\v3.5\,.

Para executar, primeiro, abra um prompt de comando, clique em "Iniciar" e digite cmd.exe.
Talvez você precise cd no diretório que contém seus arquivos de origem.

Execute o compilador C # assim:

  c:\windows\Microsoft.NET\Framework\v3.5\bin\csc.exe 
            /t:exe /out:MyApplication.exe MyApplication.cs  ...

(tudo em uma linha)

Se você tiver mais de um módulo de origem a ser compilado, poderá colocá-lo na mesma linha de comando. Se você tiver outros conjuntos para referência, use /r:AssemblyName.dll.

Verifique se você possui um método estático Main () definido em uma de suas classes, para atuar como o "ponto de entrada".

Para executar o EXE resultante, digite MyApplication, seguido pelo <ENTER>prompt de comando.

Este artigo no MSDN detalha as opções do compilador de linha de comando. Você pode incorporar recursos, definir ícones, assinar montagens - tudo o que você pode fazer no Visual Studio.

Se você possui o Visual Studio instalado, no "menu Iniciar"; em Ferramentas do Visual Studio, você pode abrir um "prompt de comando do Visual Studio", que configurará todas as variáveis ​​de ambiente e caminho necessárias para a compilação da linha de comando.

Embora seja muito útil saber disso, você deve combiná-lo com o conhecimento de algum tipo de ferramenta de construção, como NAnt , MSBuild , FinalBuilder etc. Essas ferramentas fornecem um ambiente de construção completo, não apenas o compilador básico.

Em um Mac

Em um Mac, a sintaxe é semelhante, apenas o C sharp Compiler é apenas chamado csc:

$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...

Então, para executá-lo:

$ mono MyApplication.exe

1
se bem me lembro, você só pode compilar e executar se tiver uma classe estática com o método Main.
cjk

O compilador avisa hoje em dia, se você não tiver, mas é bom acrescentar isso à resposta, obrigado.
Ash

5
Isso é incrível. Necessário para compilar um pequeno aplicativo C # e não tem interesse em tocar no Visual Studio. Obrigado!
ColinM

1
No Win10, encontrei o meu lá:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson

17

Outra maneira de compilar programas em C # (sem usar o Visual Studio ou sem instalá-lo) é criar uma variável de usuário em variáveis ​​de ambiente, a saber "PATH".

Copie o seguinte caminho nesta variável:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

ou dependendo de qual .NET seu PC possui.

Portanto, você não precisa mencionar o caminho inteiro toda vez que compilar um código. Basta usar

"C: \ Users \ UserName \ Desktop> csc [opções] filename.cs"

ou onde quer que esteja o caminho do seu código.

Agora você está pronto para ir.


15

Você pode compilar um programa C #:

c:> csc Hello.cs

Você pode executar o programa

c:> Olá


1
E se eu usar bibliotecas adicionais? Estou recebendo erros que os assemblies não foram encontrados ... Como corrigir isso?
Nikas Žalias 17/03/19

Você precisaria garantir primeiro que o caminho para o compilador esteja nas variáveis ​​de ambiente.
Dame Lyngdoh

@ NikasŽalias. Por exemplo, csc Hello.cs -version: latest-reference: System.Net.Http.dll
Alex Nolasco

7

Embora seja definitivamente bom saber como construir na linha de comando, para a maioria dos trabalhos, pode ser mais fácil usar um IDE. A edição expressa em C # é gratuita e muito boa para o dinheiro ;-p

Como alternativa, coisas como snippy podem ser usadas para executar fragmentos de código C #.

Finalmente - observe que a linha de comando é específica da implementação; para MS, é csc; para mono , é gmcse amigos .... Da mesma forma, para executar: é apenas "exename" para a versão MS, mas normalmente "mono exename" para mono.

Finalmente, muitos projetos são construídos com ferramentas de script de construção; MSBuild , NAnt , etc.


3
Eu uso o IDE. Mas eu precisava saber. Apenas não parece certo não saber! Muito obrigado pela sua resposta.
DragonBorn

1
+1 para NAnt! O LINQPad é muito bom para experimentar fragmentos de código: linqpad.net
TrueWill 27/02

7

Para a versão mais recente, primeiro abra uma janela do Powershell, vá para qualquer pasta (por exemplo c:\projects\) e execute o seguinte

# Get nuget.exe command line
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe

# Download the C# Roslyn compiler (just a few megs, no need to 'install')
.\nuget.exe install Microsoft.Net.Compilers

# Compiler, meet code
.\Microsoft.Net.Compilers.1.3.2\tools\csc.exe .\HelloWorld.cs

# Run it
.\HelloWorld.exe    

Um exemplo HelloWorld.cs

using System;

public class HelloWorld {
    public static void Main() 
    {
        Console.WriteLine("Hello world!");
    }
}

Você também pode tentar o novo interpretador C #;)

.\Microsoft.Net.Compilers.1.3.2\tools\csi.exe
> Console.WriteLine("Hello world!");
Hello world!

6

Aqui está como instalar o MSBuild com o compilador C # 7.0 independente, que não está mais incluído no último .NET Framework 4.7:

É possível instalar um compilador C # sem o Visual Studio?

Então apenas corra

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

para compilar um arquivo de origem único para executável.

Observe também que o .Net Core não oferece suporte à compilação de arquivos de origem única sem um projeto pré-configurado.


5

O LinqPad é uma maneira rápida de testar algum código C # e gratuito.


2

Você pode criar seus arquivos de classe no prompt de comando do VS (para que todas as variáveis ​​de ambiente necessárias sejam carregadas), não na janela de comando padrão do Windows.

Para saber mais sobre a criação da linha de comando com o csc.exe (o compilador), consulte este artigo .


2

Se você instalou o Visual Studio, terá o Prompt de Comando do Desenvolvedor para VS. Você pode criar seu programa facilmente usando o csccomando e executar seu aplicativo com o nome do aplicativo no prompt de comando do desenvolvedor.

Você pode abrir o prompt de comando do desenvolvedor, conforme indicado abaixo.

Iniciar => Prompt de Comando do Desenvolvedor para VS

Espero que isto ajude!


2

Adicionar ao caminho

C:\Windows\Microsoft.NET\Framework\v3.5

Compilar:

csc file.cs

Executar:

file

1

Depois de escrever o código c # e salvá-lo. Você pode usar o prompt de comando para executá-lo como o outro código.

No prompt de comando, insira o diretório em que seu arquivo está e digite

Compilar:

mcs yourfilename.cs

Executar:

mono yourfilename.exe 

se você quiser que o arquivo .exe seja diferente com um nome diferente, digite

Compilar:

mcs yourfilename.cs -out:anyname.exe 

Executar:

mono anyname.exe 

Isso deve ajudar!


1

Nos sistemas Windows, use o comando csc <filname>.csno prompt de comando enquanto o diretório atual estiver no Microsoft Visual Studio \ <Year> \ <Version>

Existem duas maneiras:

Usando o prompt de comando:

  1. Iniciar -> Prompt de Comando
  2. Altere o diretório para a pasta Visual Studio, usando o comando: cd C: \ Arquivos de Programas (x86) \ Microsoft Visual Studio \ 2017 \ <Version>
  3. Use o comando: csc /.cs

Usando o prompt de comando do desenvolvedor:

  1. Iniciar -> Prompt de Comando do Desenvolvedor para o VS 2017 (aqui o diretório já está definido para a pasta Visual Studio)

  2. Use o comando: csc /.cs

Espero que ajude!


0

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn

é aqui que você pode encontrar o compilador c # que suporta c # 7, caso contrário, ele usará os compiladores .net 4 que suportam apenas c # 5



0

Eu escrevi um arquivo em lotes CompileCS.cmdque permite compilar (e opcionalmente executar) um arquivo C #. Você pode encontrar a resposta completa, incluindo o programa em lote 'CompileCS' aqui .

Seu uso é simples:

CompileCS /run GetDotNetVersion.cs[arg1] ... [arg9]

irá compilar e executar GetDotNetVersion.cs - se você quiser compilá-lo, omita o /runparâmetro.

O aplicativo do console GetDotNetVersion.csé retirado desta resposta .

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.