C#でコンパイルエラーが発生する理由を解説

このQ&Aのポイント
  • C#でコマンドプロンプトでコンパイルエラーが発生する場合、'csc' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。このエラーが表示される場合、C#のコンパイラが正しくインストールされていない可能性があります。
  • Microsoft Visual C# 2010 Expressを利用してC#のプログラムを作成している場合、必要なコンパイラである'csc'がインストールされていない可能性があります。まず、コンピュータにC#コンパイラがインストールされているか確認しましょう。
  • C#コンパイラがインストールされていない場合は、Microsoftの公式ウェブサイトから最新のVisual Studioをダウンロードしてインストールすることをおすすめします。Visual StudioにはC#コンパイラが含まれており、これを使ってC#プログラムをコンパイルすることができます。
回答を見る
  • ベストアンサー

C#についての質問です

Microsoft Visual C# 2010 Express をつかって using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Console { class Program { static void Main(string[] args) { Console.WriteLine("皆様、はじめまして"); } } } と入力して.csで保存したのですが、コマンドプロンプトで 'csc' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 とでてコンパイルできません。対応を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • NYAN99
  • ベストアンサー率35% (32/90)
回答No.1

恐らくPathが通っていないからだと。 環境変数 Pathでcsc.exeのあるフォルダーに合わせて設定してみてください。

nakai1119pc
質問者

お礼

ありがとうございました

関連するQ&A

  • Visual Studio 2017C#

    下記のVisual Studio 2017 C# 19行目のXの定義がありません。 と出ました。 11行目で定義していると思うのですけど…。 どういうことなのか教えてください。 ご多忙のところ恐れ入りますが、ご回答のほどよろしくお願いします。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace jump25 { class Test { public int x = 10; } class Program { public static void Main(string[] args) { Test obj = new Test(); int y = object.x; Console.WriteLine(y); } } }

  • パイプを用いた通信 C#とMATLAB

    パイプを使用しC#から送信したデータをMATLABで受信することは可能でしょうか?   もし可能であるならばどのようにすればよいのでしょうか。 以下のプログラムで行っているのですがMATLAB側で受信ができず -1がかえってきてしまいます C言語で受信する場合はうまくいくのですがMATLABを使用するとファイルのopneができません。 以下C#・MATLABプログラム C# <プログラム> 送信側 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Pipes; using System.IO; namespace PipeTest { class Program { static void Main(string[] args){ Console.WriteLine("パイプ接続待ち..."); NamedPipeServerStream pipe = new NamedPipeServerStream("test"); pipe.WaitForConnection(); Console.WriteLine("送信(キーを押すと終了)"); StreamWriter stw = new StreamWriter(pipe); stw.AutoFlush = true; while(Console.KeyAvailable == false) { stw.WriteLine("This is a test"); System.Threading.Thread.Sleep(500); } Console.WriteLine("終了"); pipe.Close(); } } } MATLAB <プログラム> 受信側 fp = fopen('C:\\\\.\\pipe\\test');

  • C#で実行形式ファイル(*.exe)を起動したい

    C#で実行形式ファイル(*.exe)を起動したいのですが、以下のようにしました。 しかし、うまくいきません。なぜでしょうか? コマンドプロンプトから実行すればまったく同じ引数でもうまくいきます。 したがって引数の書式に問題があるとは思えません。 これを実行するとコマンドプロンプトのウィンドウが表示され2秒後に消えます。 しかし、作成されているべきふたつのファイル(rangeとtrain.scale)が作成されていません。 急いでいます。 よろしくお願いいたします。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { try{ Process myProcess ; myProcess = Process.Start(@"C:\Users\youzan\svm-scale.exe", @"-l -1 -u 1 -s           range train.txt > train.scale"); Thread.Sleep(2000); myProcess.CloseMainWindow() ; myProcess.Close(); } catch(Exception e) { Console.WriteLine("The following exception was raised: "); Console.WriteLine(e.Message); } } } }

  • クライアント上のC++でサーバーとソケット送信

    クライアント(Windows7)上でC++を使って、サーバー側(Windows)に対してデータを送りたいです (ソケット通信?)。 サーバ受信側はC#を使ったプログラムで以下のような感じで考えてます。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; namespace ConsoleApplication1 {   class Program   {     static void Main(string[] args)     {       int port = 2222;       System.Net.IPAddress ip = IPAddress.Parse("127.0.0.1");       System.Net.Sockets.TcpListener server = new TcpListener(ip, port);       Console.WriteLine("Enter押してください");       ConsoleKeyInfo info = Console.ReadKey();       if (info.Key == ConsoleKey.Enter)       {         Console.WriteLine("サーバー待機中");         server.Start();         TcpClient client = server.AcceptTcpClient();         NetworkStream ns = client.GetStream();         StreamWriter sw = new StreamWriter(ns);         Console.WriteLine(sw);       }     }   } } C++のことがよくわかってないので、送信側でC++を使ってどのように 送信すればいいのかわかりません。 送信するデータはINT型で、1秒間に1回、繰り返し送ります。 よろしくお願いします。

  • インデックスが配列の境界外です.

    C#で等比級数の和が1を超えたときの項数を求める以下のようなプログラムを作っています. デバッグするとx[num,2] =sumnw;の部分がインデックスが配列の境界外と言われてしまいます.なぜでしょうか?誰かご教授よろしくお願いします. ====プログラム============================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double r = 1.05 , a = 0.037 , sum = 1.0 , sumnw = 0.0 ; int num; double[ , ] x=new double[100 ,2 ]; Console.WriteLine("HHHHHHHHHHHHHH Display of variables HHHHHHHHHHHHHHHH"); Console.WriteLine("r={0},a={1},sum={2}", r , a , sum); num=0; while(sumnw < sum ) { num = ++num; sumnw = a * (1 - Math.Pow(r, num + 1)) / (1 - r); x[num,1]=num; x[num,2] =sumnw; Console.WriteLine("{0},{1}",x[num,1],x[num,2]); } Console.WriteLine("fixed number of cell is={0}", num); } } }

  • C#でコンパイルができない。

    C#のベータ版をセットアップして以下のサンプルプログラムを コンパイルしたところ、エラーがでました。何がいけないのでしょうか?OSはWin98です。 css001.cs(7,3): error CS0117: 'System.Console' does not contain a definition for 'Writeline' using System; プログラムリスト public class CSS001 { public static void Main(string[] args) { Console.Writeline("Hello World"); } }

  • c#のプログラムについて。

    c#のプログラムについて。 お世話になります。 c#初心者です。 下記の様なコードを記述してますが、 「 Form1.Button1.Visible == false;」の部分で 「'WindowsFormApplication1.Form1'にButton1'の定義がありません。」 と言うエラーが出てしまいます。 どの様に定義して良いのかが分からず、悩んでいます。 どなたかお教え頂きたく宜しくお願い致します。        記 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication3 { static class Program { /// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); string result = System.Environment.MachineName; if (result == "xxxxxxx") { Form1.Button1.Visible == false; } } } }

  • C#でカレンダーを作っているのですがここから先がわかりません。どなたかおしえてもらえませんか?

    using System; using System.Collections.Generic; using System.Text; namespace 万年カレンダー { class MyEventCiass { static void Main(string[] args) { int nen, tuki,tukinohi,youbi;    //西暦の入力 System.Console.Out.WriteLine("西暦を入力してください。"); nen = int.Parse(Console.ReadLine()); //月の入力 System.Console.Out.WriteLine("月を入力してください。"); tuki = int.Parse(Console.ReadLine()); //西暦と月の出力 Console.WriteLine(nen + "年" + tuki + "月"); switch (tuki) { case 2: if (nen % 4 == 0 && (nen % 100 != 0 || nen % 400 == 0)) tukinohi = 29; else tukinohi = 28; break; case 4: case 6: case 9: case 11: tukinohi = 30; break; default: tukinohi = 31; break; } if (tuki == 1 || tuki == 2) { nen = nen -1 ; tuki = tuki + 12; } //曜日の出力 Console.WriteLine("日 月 火 水 木 金 土"); youbi = (nen + nen / 4 - nen / 100 + nen / 400 + (13 * tuki + 8) / 5 + 1) % 7; if (youbi == 0) youbi = 7; for (int i = 1; i <= youbi ;i += 1 ) { Console.Write(i.ToString()); } for (int i = 4; i <= tukinohi; i += 1) { Console.Write(i.ToString()); } Console.ReadLine(); } } }

  • C#での関数テーブルの作り方

    同じ質問で昔以下の回答がありましたが、今はライブラリが進歩しているようなので、より新しい構文を使った書き方がありましたら、是非ご教授いただければと思います。 delegate bool Execute( string oprand ); class Entry {  static bool aaa(string op)   { System.Console.WriteLine("aaa "+op); return true; }  static bool bbb(string op)   { System.Console.WriteLine("bbb "+op); return true; }  static bool ccc(string op)   { System.Console.WriteLine("ccc "+op); return true; }  static public void Main() {   System.Collections.Generic.Dictionary<string,Execute> map =    new System.Collections.Generic.Dictionary<string,Execute>();   map["AAA"] = aaa;   map["BBB"] = bbb;   map["CCC"] = ccc;   map["BBB"]("argument");  } } 宜しくお願い致します。

  • c#による実行ファイルの作成方法

    using System; class test { public static int Main(string[] args) { int x = args.Length; for (int i = 0; i < x; i++) Console.WriteLine("{0}, {1}", i, args[i]); return 0; } } 上記のプログラムをvisual c# 2010 expressで ビルドした後、コマンドプロンプトから test.exe aaa bbb ccc と入力し引数を渡して呼び出そうとしたのですが、 「'test.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 と表示されうまくいきませんでした。 test.csを保存したうえで今度はフルパスでの入力や、 csc test.csなども試してみましたが、ダメでした。 参考書には「ビルドをすることでexeの実行ファイルが作成される」と書かれているのですが、 PC内にtest.exeは見当たりません。 コマンドライン引数が渡せないのは実行ファイルが生成されていないためだと思うのですが、 まだ始めたばかりで解決の糸口もわからない状況です。 何かヒントになるようなことでもいいので教えていただけると助かります。