コマンドプロンプトでのC#ソースファイルのコンパイル/実行


回答:


139

CSC.exeは.NET Frameworkに含まれているCSharpコンパイラであり、コマンドプロンプトからコンパイルするために使用できます。"/ target:exe"を使用する場合、出力は実行可能ファイル ".exe"、またはDLLになります。/ target:libraryを使用する場合、CSC.exeは.NET Frameworkディレクトリにあります。

.NET 3.5のために、例えばc:\windows\Microsoft.NET\Framework\v3.5\

実行するには、まずコマンドプロンプトを開き、[スタート]をクリックして、と入力しますcmd.exe
次に、ソースファイルを保持するディレクトリにcdする必要があります。

次のようにC#コンパイラを実行します。

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

(すべて1行で)

コンパイルするソースモジュールが複数ある場合は、同じコマンドラインに配置できます。参照する他のアセンブリがある場合は、を使用します/r:AssemblyName.dll

「エントリポイント」として機能する静的Main()メソッドがクラスの1つで定義されていることを確認してください。

生成されたEXEを実行するには、と入力しMyApplication、続い<ENTER>てコマンドプロンプトを使用します。

MSDNのこの記事では、コマンドラインコンパイラのオプションについて詳しく説明しています。リソースを埋め込んだり、アイコンを設定したり、アセンブリに署名したりできます-Visual Studio内で実行できるすべてのこと。

Visual Studioがインストールされている場合は、[スタート]メニューで Visual Studioツールの下で、「Visual Studioコマンドプロンプト」を開くことができます。これにより、コマンドラインのコンパイルに必要なすべての環境変数とパス変数が設定されます。

これを知ることは非常に便利ですが、NAntMSBuildFinalBuilderなどのビルドツールの知識と組み合わせる必要があります。これらのツールは、基本的なコンパイラだけでなく、完全なビルド環境を提供します。

Macの場合

Macでは、構文は似ており、Cシャープコンパイラのみが名前が付けられていcscます。

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

それを実行するには:

$ mono MyApplication.exe

1
私が正しく覚えていれば、Mainメソッドを持つ静的クラスがある場合にのみ、コンパイルおよび実行できます。
cjk

コンパイラは最近警告を出していない場合は警告を出しますが、良い点として答えに追加します。ありがとうございます。
Ash

5
これは素晴らしいです。小さなC#アプリをコンパイルする必要があり、Visual Studioに触れる必要はありません。ありがとう!
ColinM 2013

1
Win10で、私はそこで見つけました:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson

17

C#プログラムをコンパイルする別の方法(Visual Studioを使用せず、またはインストールせずに) は、環境変数にユーザー変数、つまり「PATH」を作成することです。

この変数に次のパスをコピーします。

「C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319」

または、PCの.NETによって異なります。

したがって、コードをコンパイルするたびにパス全体を言及する必要はありません。単に使う

"C:\ Users \ UserName \ Desktop> csc [options] filename.cs"

またはコードのパスがどこにあるか。

これで準備完了です。


15

C#プログラムをコンパイルできます。

c:> csc Hello.cs

プログラムを実行できます

c:>こんにちは


1
追加のライブラリを使用するとどうなりますか?アセンブリが見つからないというエラーが発生します...これを修正するにはどうすればよいですか?
NikasŽalias2018年

まず、コンパイラへのパスが環境変数にあることを確認する必要があります。
Dame Lyngdoh 2018

@NikasŽalias。例:csc Hello.cs -langversion:latest -reference:System.Net.Http.dll
Alex Nolasco

7

コマンドラインでビルドする方法を知っていることは間違いなく良いことですが、ほとんどの場合、IDEを使用する方が簡単かもしれません。C#エクスプレス版は無料で、お金のために非常に良いです;-p

または、snippyなどを使用してC#コードのフラグメントを実行することもできます。

最後に、コマンドラインは実装固有であることに注意してください。MSの場合はcsc、以下のために、モノ、それはgmcs、友人....同様に、実行するために:それはMS版のためだけに「exenameの」ですが、一般的に「モノexenameの」モノのために。

最後に、多くのプロジェクトはビルドスクリプトツールでビルドされます。MSBuildNAntなど


3
私はIDEを使用します。しかし、私は知る必要がありました。知らないって感じじゃない!お返事ありがとうございます。
DragonBorn 2009

1
NAntの+1!LINQPadは、コードの断片を実験するための非常に良いです:linqpad.net
TrueWill

7

最新バージョンの場合、最初にPowershellウィンドウを開き、任意のフォルダー(例:)に移動してc:\projects\、次を実行します

# 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    

HelloWorld.csの例

using System;

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

新しいC#インタープリターを試すこともできます;)

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

6

以下は、最新の.Net Framework 4.7にバンドルされなくなったスタンドアロンのC#7.0コンパイラでMSBuildをインストールする方法です。

Visual StudioなしでC#コンパイラをインストールすることはできますか?

次に、ただ実行します

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

単一のソースファイルを実行可能ファイルにコンパイルします。

また、.Net Core は、事前設定されたプロジェクトがない場合、単一のソースファイルのコンパイルをサポートしないことに注意してください。


5

LinqPadは、いくつかのC#コードをテストする簡単な方法であり、無料です。


2

デフォルトのWindowsコマンドウィンドウではなく、VSコマンドプロンプト内で(必要なすべての環境変数がロードされるように)クラスファイルを構築できます。

csc.exe(コンパイラ)を使用したコマンドラインのビルドについて詳しくは、こちらの記事をご覧ください


2

Visual Studioをインストールしている場合は、VS用の開発者コマンドプロンプトがあります。cscコマンドを使用してプログラムを簡単に構築し、開発者のコ​​マンドプロンプト内でアプリケーションの名前を使用してアプリケーションを実行できます。

以下に示すように、開発者コマンドプロンプトを開くことができます。

Start => VSの開発者コマンドプロンプト

お役に立てれば!



1

C#コードを書いて保存したら。コマンドプロンプトを使用して、他のコードと同じように実行できます。

コマンドプロンプトで、ファイルがあるディレクトリを入力し、次のように入力します。

コンパイルする:

mcs yourfilename.cs

実行するには:

mono yourfilename.exe 

.exeファイルに別の名前を付けたい場合は、次のように入力します。

コンパイルする:

mcs yourfilename.cs -out:anyname.exe 

実行するには:

mono anyname.exe 

これは役立つはずです!


1

Windowsシステムでは、csc <filname>.cs現在のディレクトリがMicrosoft Visual Studio \ <年> \ <バージョン>にあるときにコマンドプロンプトでコマンドを使用します。

2つの方法があります。

コマンドプロンプトを使用する:

  1. スタート->コマンドプロンプト
  2. 次のコマンドを使用して、ディレクトリをVisual Studioフォルダーに変更します。cd C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ <Version>
  3. 次のコマンドを使用します:csc /.cs

開発者コマンドプロンプトの使用:

  1. スタート-> VS 2017の開発者コマンドプロンプト(ここで、ディレクトリは既にVisual Studioフォルダーに設定されています)

  2. 次のコマンドを使用します:csc /.cs

それが役に立てば幸い!


0

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

これは、c#7をサポートするc#コンパイラを見つける場所です。それ以外の場合は、c#5のみをサポートする.net 4コンパイラを使用します。



0

CompileCS.cmdC#ファイルをコンパイル(およびオプションで実行)できるバッチファイルを作成しましたここで、バッチプログラム 'CompileCS'を含む完全な答えを見つけることができます。

その使用方法は簡単です:

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

GetDotNetVersion.csをコンパイルして実行し/runます。コンパイルするだけの場合は、パラメータを省略します。

コンソールアプリケーションGetDotNetVersion.csこの回答から取得されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.