C#コンパイラーでエラー発生

このQ&Aのポイント
  • C#コンパイラーでエラーが発生している状況について教えてください。
  • 階層が深いディレクトリー内のファイルを現在の階層に集める方法について教えてください。
  • C#コンパイラーがサポートしていない言語バージョンについてどう判断すれば良いですか。
回答を見る
  • ベストアンサー

C#コンパイラーでエラー発生

以下長文になりますが、一読の上対処方法を教えて下さい。 便利な記事を見つけました。 https://q7z.hatenablog.com/entry/2016/02/10/013850 階層が深いディレクトリー内のファイルを現在の階層(ディレクトリ)に集める事ができる。 私にとって、とても便利な情報です。 この辺になってくるともうバッチだけでは対処できなくなってくるのでプログラムを組む必要があると記載されています。 例として以下のように記載されていてC#のコードも添付されています。 「これをVisual StudioでC#コンソールアプリケーションとしてビルドしてできたexeファイルを、batと同様の場所に置いてファイル名を実行すると動きます。 C#で書きましたが、他の言語でも同じことはできるはずです。」 自分は、C#コンパイラーも持っていないのでexeファイルを作成できる環境が無いと一度はあきらめましたが 以下の記事を見つけてできそうなのでやってみました。 https://www.sejuku.net/blog/104421 以下手順です。  1)コマンドプロンプトを管理者権限で起動  2)以下のコマンドを入力   C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe C:\Users\konno\C+TEST\c+test.cs 3)以下の文字がプロンプト画面に表示されます C:\Users\konno\C+TEST>C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe C:\Users\konno\C+TEST\c+test.cs Microsoft (R) Visual C# Compiler version 4.8.4084.0 for C# 5 Copyright (C) Microsoft Corporation. All rights reserved. This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240    英文を翻訳するとコンパイラがサポート外なので上記のURLにのリンクを開くと下記に移動しました。     https://github.com/dotnet/roslyn    移動先が正しいのかが分からないし何をどうしたら良いか?判断できません。    良きアドバイスをお願いします。     以下、英文の翻訳  このコンパイラは、Microsoft (R) .NET Frameworkの一部として提供されています。  このコンパイラは、Microsoft (R) .NET Frameworkの一部として提供されていますが、最新バージョンではないC# 5までの言語バージョンしかサポートしていません。  新しいバージョンのC#をサポートしているコンパイラーはこちら。 ------------------------------------ なお、私の C:\Windows\Microsoft.NET\Framework\ のフォルダーには   1041   v1.0.3705   v1.1.4322   v2.0.50727   v3.0   v3.5   v4.0.30319 がありますが、  v4.0.30319がこの中では最新のようなのでこれを利用しました。 間違っていますか ? ----------------------------------------- 以下がC+test.csのコードです。 using System.IO; namespace ZapAll { class Program { private static readonly char separator = Path.DirectorySeparatorChar; static void Main(string[] args) { foreach (var item in Directory.EnumerateDirectories(Directory.GetCurrentDirectory())) { Zap(item); } } static void Zap(string path) { // process children directories first foreach (var dir in Directory.EnumerateDirectories(path)) { Zap(dir); } // zap all files foreach (var oldPath in Directory.EnumerateFiles(path)) { var newPath = oldPath.Insert(oldPath.LastIndexOf(separator), "_"); newPath = newPath.Remove(newPath.LastIndexOf(separator), 1); File.Move(oldPath, newPath); } // delete directory Directory.Delete(path); } } }

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.3

新しいものの方がいいとも思えますので Visual Studio Community でしょうか。2019になります。 インストール時に必要なものを選択する時に.Netの所は選択してください。 インストールして起動したら新しいプロジェクトの作成で全ての言語のドロップダウンでC#を選んで 上にあるコンソールアプリケーションはではなく 下の方にある コンソールアプリケーション(.NET Framework) を選択してください。 エクセルのVBAの画面の高級そうなのが開くと、テンプレートのコードが記載されてますので、それを削除して参考にしたサイトのコードを記載してメニューのDebugをReleaseにしてビルドを実行するとプロジェクト作成時に決めた場所の \bin\Release に実行ファイルができています。

NuboChan
質問者

お礼

インストールの方法を教えて頂きありがとうございます。 Visual Studio Communityが無事インストール出来て実行ファイルも作成できました。 exeを実行すると階層を考慮したディレクトリーを「-」でつないだ形式でファイルが作成されますが 階層を考慮しないでファイル名だけを実行ファイルのあるディレクトリーに作成するように コードを少し変更したいのですがどこを手直ししたら良いですか ? C:\Users\***\C+TEST\join\1997 Dirk K - About You_test2_test3_206 - My Eyes.mp3 ではなく C:\Users\***\C+TEST\join\My Eyes.mp3 のように もし同じファイル名があると、My Eyes_2.mp3のように _2(_3)と差別化できれば嬉しいです。

その他の回答 (6)

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.7

.NET 6.0 Preview 3 ですが Microsoftのサイトで .NET6.0をダウンロードする https://dotnet.microsoft.com/download/dotnet/6.0 でできます。 ただし、正式版ではなくプレビュー版(開発途上版、お試し版)なのでサポート外です。 上記サイトの上の方にある「発表のブログ投稿をチェックしてください」を見ると .NET 6は2021年11月にリリース予定みたいです。

NuboChan
質問者

お礼

kkkkkmさん、わざわざ調べて頂き感謝します。 その後、c#コードを改造しようとしました基礎がないのでド素人には無理です。 >.NET 6.0 Preview 3 コマンドプロンプトで暫定版の情報がUPされるとは  正直全く認識になかったので面食らいました。 そんなにコンパイラーを利用することも多くなさそうでこれからもVBAが活躍しそうです。 (昨今、小学生もプログラミングを教室で習得する時代で羨ましい限りです。) >Microsoft Visual Studio2019をインストールしたら.NET 5.0ランタイムが入るのでC#8まで対応みたいです。 了解しました。 >PowerShellで >dotnet --list-runtimes >としたら.NET のランタイムのリストが出ますので5.0があると思います。 以下のように表示されたので私のPCでは5.0.5がインストールされているようです。 PS C:\Users\Nubo> dotnet --list-runtimes Microsoft.AspNetCore.All 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] >roslynのcscは Visual Studio2019をインストールしたので以下の場所に入っていると思います。 指定頂いた場所にcsc.exeが存在していました。 -------------------------

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.6

.NETの件ですが 言語機能の規則の C# コンパイラ オプション https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-options/language の最後の方に対象C#のバージョンが記載されてますが、.Net FrameworkのコンパイラではC#5までで、Microsoft Visual Studio2019をインストールしたら.NET 5.0ランタイムが入るのでC#8まで対応みたいです。 PowerShellで dotnet --list-runtimes としたら.NET のランタイムのリストが出ますので5.0があると思います。 ない場合は、Visual Studio2019 installerを起動して変更で個別のコンポーネントの.NETのところに.NET5.0ランタイムにチェックを入れてインストールしてください。 また、 https://github.com/dotnet/roslyn の、roslynのcscは Visual Studio2019をインストールしたので以下の場所に入っていると思います。バージョンがサイトと同じかどうかは不明です。 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\csc.exe

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.5

> コードを少し変更したいのですがどこを手直ししたら良いですか ? C#についてはなんとなくわかる程度で不慣れですので、コードの変更については残念ながら回答ができません。

NuboChan
質問者

補足

>コードの変更については残念ながら回答ができません。 了解です。 お世話をおかけしました。

  • f272
  • ベストアンサー率46% (8009/17116)
回答No.4

> そうなると上記の表示が何のための表示なのか? > ど素人にはピンと来ません。 「あなたの使おうとしたコンパイラよりも新しいバージョンのコンパイラがありますよ。そちらを使ってはいかがですか?」と情報を提供するのは普通に行うことですよ。

NuboChan
質問者

補足

>情報を提供するのは普通に行うことですよ。 判りました。 コマンドプロンプトで更新情報が提供されるのですね。 ド素人で理解が追いついていませんが、  新しいバージョンは、下記からと表示され http://go.microsoft.com/fwlink/?LinkID=533240 上記のURLにのリンクを開くと下記が表示されますが     https://github.com/dotnet/roslyn 表示された   右側の「.NET 6.0 Preview 3 Latest」が更新情報のようですが   クリックすると「Source code(ZIP)」が入手できそうですが   これは実行ファイルでは無いですよね。   実行ファイルは、どこから入手できますか ?   それとも考え違いで認識が間違っていますか ?      

  • f272
  • ベストアンサー率46% (8009/17116)
回答No.2

どこにエラーがあるのですか? C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe C:\Users\konno\C+TEST\c+test.cs とすれば C+test.exe がC:\Users\konno\C+TESTの中に作られているはずですよ。あとはそれを実行するだけです。

NuboChan
質問者

お礼

f272さん、アドバイス感謝します。 >どこにエラーがあるのですか? エラー表示は出ませんでしたが、 コマンドプロンプトの実行時に下記のコメントが表示されるので  コンパイラがサポート外なので表示が出てコンパイルが上手できていなくと判断してしまいました。 This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240 確かにチェックすると  c+test.exeがターゲットのフォルダーに作成されていて実行すると  エラー無く完走しました。 そうなると上記の表示が何のための表示なのか? ど素人にはピンと来ません。 問題の表示は、何のために表示されるのでしょうか ?

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.1

Visual Studioって無償版がこちらで手に入ると思います。 https://visualstudio.microsoft.com/ja/free-developer-offers/ Visual Studio Express https://visualstudio.microsoft.com/ja/vs/express/

NuboChan
質問者

補足

kkkkkmさん、いつもアドバイス感謝します。 コンパイルについては、全くのド素人で教えていただいたツールのうち  どれを選択すれば良いのか正直わかりません。 windowsでは、以下の3つが選択肢に上がっていますが  ド素人が始めるとしてどちらが安易に導入できますか ?   (コードが既にあるのでコンパイルできればどれも同じぐらいの難易度なら      オススメの候補を教えて下さい。) visual Studio Community Visual Studio Code Visual Studio Express

関連するQ&A

  • Cコンパイラ(gcc)について

    はじめまして。 C言語のコンパイラについてお尋ねしても宜しいでしょうか。 以下のファイルが存在します。 ・test.c(C言語のソースファイル) ・test.exe(上記ソースをコンパイルしたもの。Windows環境で現在稼動してます) test.cの中身を一部変更し、コンパイルする必要があるのですが、 (恥ずかしながら、コンパイルした人間はもう居ないので) 何のコンパイラを使ったか、判りません。 コンパイルするときに使用したであろうコマンドがあります。 gcc test.c -WALL -03 -o test.exe 察するに、gccというコンパイラを使用したと思い MiniGW (http://yanchde.gozaru.jp/mingw/wingw_start.html) を使用してコンパイルをしてみました。 コンパイルは通るのですが、出来上がるexeファイルのサイズが 非常に小さいです。 (オリジナルのtest.exeは500KB以上ありますが、今回コンパイルで出来たものは40kbほどです) この場合、、オリジナルのtest.exeと今回コンパイルしたexeは 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。

  • コンパイラC++のDL方法

    こんにちは。 大学の課題で、C言語を使ったプログラムの課題が出されており、 それを書きあげるために、C++コンパイラのDLが必要です。 なので、 http://www.embarcadero.com/jp/products/cbuilder/free-compiler から、C++コンパイラをDLしました。 そこで手順に従って、 freecommandlinetools2 freeturbodebugger をインストールしたまでは良かったのですが、 次の手順が以下のようになっています。 1. freecommandlinetools.exe を実行します。無料の C++Builder 5 コマンドラインツール開発システムをインストールしたいドライブと フォルダを選択します。 2. インストール先の bin ディレクトリで次の手順を実行します。 a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。 b. bcc32.cfg ファイルを作成します。このファイルは,Include および Lib パスのコンパイラオプション(コンパイラの -I および -L スイッチ)を設定するものです。ファイルには次の 行を含めてください。 -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" c. ilink32.cfg ファイルを作成します。このファイルは,Lib パスのリンカオプションを設定するものです。ファイルには 次の行を含めてください。 -L"c:\Borland\Bcc55\lib" この中で、 a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。 の意味がわからないです。新しいファイルを作って保存すればよろしいのですか? どなたか、ご回答をお願いします。

  • C言語コンパイラーエラーについて教えてください。

    C言語でコンパイルができなくて困っています。 コンパイルをすると、 ----------------------------------------- test.c.20:undefined reference to `getcury' test.c:20: undefined reference to `getcurx' collect2: ld returned 1 exit status ----------------------------------------- と言うエラーが出てしまい、コンパイルが完了しません。 ソースは、「test.c」と言うファイルネームで、内容は ----------------------------------------- #include <stdio.h> #include <stdlib.h> #include <curses.h> int main (void) { int y = 0, x = 0; initscr(); getyx(curscr, y, x); printw("x = %d, y = %d", x, y); refresh(); getchar(); endwin(); return 0; } ----------------------------------------- です。 OSは、Windows7 Professional SP1 コンパイラーは、MinGW Ver5.1.6. で、コマンドは gcc -o test.exe test.c -lcurses です。 確かに、curses へはパスも通っており、リンクできているようなんですが、 エラーが出てしまいます。 どうすれば良いのかわからず、大変困っています。 だれかご存知の方、教えてください。 どうかよろしくお願い致します。

  • C++のコンパイラについての質問

    ボーランドと呼ばれるサイトで配布されている、C++コンパイラについての質問なんですが ↓の文章を(説明から抜粋)読んでも何をすればいいのか 解らず困っています、誰か意味の解る人が居たら、回答  お願いします  2. インストール先の bin ディレクトリで次の手順を実行します。 a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。 b. bcc32.cfg ファイルを作成します。このファイルは,Include および Lib パスのコンパイラオプション(コンパイラの -I および -L スイッチ)を設定するものです。ファイルには次の 行を含めてください。 -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" c. ilink32.cfg ファイルを作成します。このファイルは,Lib パスのリンカオプションを設定するものです。ファイルには 次の行を含めてください。 -L"c:\Borland\Bcc55\lib"

  • zendframeworkインストールエラー

    初めての質問失礼します PHPでシステム開発をしているのですが、Zend framework をインストール(コピー)して サンプルを作成してテストしてみたのですが以下のエラーが出てなかなか解決できません どなたかわかる方お願いいたします。 Apacheのエラーログ PHP Fatal error: require_once(): Failed opening required './Zend/Version.php' (include_path='.;c:/php/includes;C:/apache/htdocs/ZF2/library/') in C:\\apache\\htdocs\\rewrite_test\\index.php on line 3 自分なりに調べまして php.iniのinclude_pathのエラーでZend framework(以下ZFと書きます) ZFのライブラリが見つかっていないのだなということはわかるのですが 環境はWinXPSP2 Apache2.2.22 PHP 5.3.18です。 ApacheはC:/apacheにインストール もちろんDocumentRootはC:/apache/htdocs/です。 mod_rewriteも有効にしてあります。 php.ini のinclude_pathの設定 798 ; Windows: "\path1;\path2" 799 include_path = ".;c:/php/includes;C:/apache/htdocs/ZF2/library/" C:/PHP5にインストール 作ったサンプルのディレクトリ構成 C:\apache\htdocs\rewrite_test以下 にtest.html と index.phpをおき、 indexphpの内容 ・・・・・・・・・ <?php // Zend_Version クラスをrequireする。 require_once './Zend/Version.php'; // Zend Frameworkのバージョン情報をechoする echo 'hello, Zend Framework ! version = ' . Zend_Version::VERSION; ?> ・・・・・・・・・・・ .htaccessの内容 ・・・・・・・・・・・・ RewriteEngine on RewriteBase /rewrite_test RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php ・・・・・・・・・・・・ ZFのバージョン2.0.5 ApacheのDocumentRootにそのままコピーして ZF2とファイル名変更 でhttp://localhost/rewrite_test/test.htmlでアクセスすると http500えらーがでて上記のエラーがでてしまいます。 どこか間違えありましたらお教えください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Borlandの無償配布のCコンパイラの初期設定

    ダウンロードしてきたやつを実行させて無事にディレクトリはできたのですが、以下の手順2のところのパスに追加しろ、というのがどういうことなのか分かりません。何をやればいいのか教えて下さい。 今までLinuxの既存のgccという温室で作業していたので、いざWindows上でCを動かしたいときに何をやればいいのかわかりません。助けてください ============================================================= 1. freecommandlinetools.exe を実行します。無料の C++Builder 5 コマンドラインツール開発システムをインストールしたいドライブと フォルダを選択します。 2. インストール先の bin ディレクトリで次の手順を実行します。 a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。 b. bcc32.cfg ファイルを作成します。このファイルは,Include および Lib パスのコンパイラオプション(コンパイラの -I および -L スイッチ)を設定するものです。ファイルには次の 行を含めてください。 -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" c. ilink32.cfg ファイルを作成します。このファイルは,Lib パスのリンカオプションを設定するものです。ファイルには 次の行を含めてください。 -L"c:\Borland\Bcc55\lib"

  • C#初心者です。

    はじめまして。C#初心者です。よろしくお願いいたします。 作った「.cs」ファイルをコマンドプロンプトで実行しようとしたのですができません。 Framework(v1.1)をダウンロードして、「csc.exe」があるディレクトリにパスを通したのですが、cscは内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません、と表示されます。どのようにしたら使えるようになるのでしょうか?わかる方いましたらよろしくお願いいたします。

  • コンパイラについて

    Pro*Cでプリコンパイラをして、次にVC++上でコンパイラをすると インクルード ファイルがオープンできません。'sqlda.h': No such file or directory と、エラーが出ます。'sqlda.h'用のファイルを探しているのですが見つかり ません。どこにあるか教えてください。できればパスを書いていただけると たすかります。

  • コンパイラによってエラーが出たり出なかったり

    構造体をポインタでつなぐリスト構造を使ったソースを書いて、Borland C++ Compiler 5.5 でコンパイルしたものを実行するとエラーで止まってしまいました。 コンパイル時には何も警告が出ませんでした。 しかし、ソースを何度見てもバグらしいコードが見つからなかったので、試しに Microsoft .NET Framework SDK でコンパイルしてみたところ、こちらも警告も出ずにコンパイルが通って、実行してみたらこんどは正常に動作しました。 コンパイラによって、実行時にエラーが出たり出なかったりするということは初めてなのでその原因を知りたくて質問しました。 どういった場合にこのようなことが起こるのでしょうか。 Borland C++ で出たエラーは、おそらくセグメントエラーだと思います。 今のところ正常に動いているのですが、なにかデンジャラスなコードを書いてしまった気がして気持ち悪いです。

  • コマンドプロンプトのエラー 

    コマンドプロンプトでおかしなエラーが出てしまいます。 http://www.adminweb.jp/command/ini/index4.html こちらのサイトを参考にしています。 Microsoft Windows [Version 6.0.6002] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:¥Users¥コンピューター名らしきもの> ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Cドライブ  +- programe file +- test testに移動してみる ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Microsoft Windows [Version 6.0.6002] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:¥Users¥コンピューター名らしきもの>¥test '¥test'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:¥Users¥コンピューター名らしきもの> とちゃんと表示されません。 http://hayato311.blog.shinobi.jp/Entry/142/ こちらのサイトによると、現在いるディレクトリより外は操作できないとあります。 最初に表示されるC:¥Users¥コンピューター名らしきもの> が悪いのかと思い、ディレクトリを移動するために C:\Users\RKP001>cd C:¥test としてみると「指定したパスがみつかりません」となってしまいます。 http://okwave.jp/qa/q4902120.html によると「ipconfig.exe と打って実行できるならPATHEXTがおかしい」 とあるのですが、やってみると問題なく動きました。 私が使っているパソコンがおかしいのでしょうか。 VistaのHome Premium 32ビットです。

専門家に質問してみよう