なお、Visual Studio付属の開発者コマンドプロンプトを起動するとcsiのある場所にパスが通っているので、csi.exeのフルパスを指定する必要はありません。簡略化して次のように書けます。
■リスト3:Visual Studioがないマシンでコマンドを使ってC#スクリプトを実行する方法
csi.exeをフォルダーごとコピーするとVisual Studioがないマシンでもcsi.exeを実行できるようです。
参考
しかし、マイクロソフトは公式には何も言っていないことから、この方法はお気楽な状況でのみ便利に使用する程度にとどめておいたほうが良さそうです。csxファイルをダブルクリックしてC#スクリプトを実行する方法
拡張子csxとcsi.exeを関連付けることでダブルクリックだけで実行できるようにできます。
csxファイルを右クリック - 開く で「インストールされたプログラムの一覧からプログラムを選択する」を選んでOKし、次の画面で「参照」をクリックしcsi.exeを選択します。
これでそのマシン上のすべてのcsxファイルはダブルクリックだけで実行できるようになります。
ところで、拡張子の関連付けの設定はこのように簡単にできますが、関連付けを解除するには面倒なのでお気をつけください。解除方法はネットで検索すると出てきます。
Visual StudioでC#スクリプトを実行する方法
C#スクリプトをVisual Studioで開発することは可能ではありますが、本物のC#の開発のような手厚いGUIの支援を受けることはできません。ブレイクポイントを設定してステップ実行することもできません。インテリセンスも限定的です。
それでもVisual Studioで開発したい場合は、まずC#のコンソールアプリケーションプロジェクトを作成します。(実際のところはコンソールアプリケーションは必須ではありません。)
そして、プロジェクトにテキストファイルを追加して拡張子はcsxとしましょう。
このcsxファイルにC#スクリプトをプログラムしてください。たとえば、この記事の冒頭で例としてあげているようなものです。
実行する前に設定が必要です。
Visual Studioのメニューで[ツール] - [外部ツール]をクリックし、表示される外部ツールウィンドウで「追加」をクリックします。 追加する内容は以下の通りにします。コマンドに指定するcsi.exeのパスだけは環境に応じて変更してください。
外部ツールの追加
項目 | 値 | タイトル | C#スクリプトとして実行 |
コマンド | C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csi.exe |
引数 | $(ItemFileName)$(ItemExt) |
初期ディレクトリ | $(ItemDir) |
出力ウィンドウを使用 | チェックする |
起動時に引数を入力 | チェックしない |
Unicodeで出力を処理する | チェックしない |
以上で設定は完了です。csxファイルをコードエディターで開いた状態で[ツール]-[C#スクリプトとして実行]をクリックすると、csxが実行されます。
Tips
- 外部ツールに作成した「C#スクリプトとして実行」をツールバーのボタンとして追加することもできます。例:[ツール]-[カスタマイズ]→「コマンド」→ツールバー→標準→「コマンドの追加」→ツール→長いコマンドの一覧から 外部ツールxx (xxは番号。「C#スクリプトとして実行」を外部ツールの何番目に登録したかで指定する番号が変わります。)
- csiを使ってC#スクリプトを地区実行するだけならC#インタラクティブで簡単にできます。
C#スクリプトはバッチやPowerShellの代わりにならない
マイクロソフト発行のMSDNマガジン2016年1月号に掲載された記事「Essential .NET - C# Scripting」から引用します。日本語には私が翻訳していますのでミスがありましたら失礼します。
少なくとも今のところ、C#スクリプトはWindows PowerShell、ましてやcmd.exeを置き換えるものではありません。はじめからそのようにアプローチすると失望するでしょう。それよりも、C#スクリプトのことを、単体テストプロジェクトやdotnetfiddleのお気軽版と考えて接してみてはどうかと私は思います。
At least for now, the purpose of the C# REPL interface is not to replace Windows PowerShell or even cmd.exe. To approach it as such at the
start will result in disappointment. Rather, I suggest you approach C# scripting and the REPL CLIs as lightweight replacements for Visual
Studio | New Project: UnitTestProject105 or the similarly purposed dotnetfiddle.net.
■リスト4:MSDNマガジン2016年1月号 Essential .NET - C# Scriptingからの引用- C# REPL interface、C# scripting and the REPL CLIs を C#スクリプトを翻訳しました。
参考
- ^ Essential .NET - C# Scripting traditionally saved into a CSX file.
元記事
https://msdn.microsoft.com/en-us/magazine/mt614271.aspx