web-dev-qa-db-ja.com

C#REPL VisualStudioの外部

F#にはREPL(read–eval–print loop)F#Interactive、C:\Program Files (x86)\Microsoft F#\v4.0\Fsi.exeがあります。

Roslyn でリリースされたように、C#には独自のインタラクティブREPLがあることを理解しています。 Visual Studioの外部で開くにはどうすればよいですか? csi.exeはどこにありますか?

30
Colonel Panic

C#インタラクティブウィンドウとcsi.exeREPLがVisualStudioに追加されました2015アップデート1(私の強調):

インタラクティブのご紹介

インタラクティブウィンドウが帰ってきました! C#インタラクティブウィンドウは、他のいくつかのインタラクティブな扱いとともにVisual Studio 2015 Update1に戻ります。

  • C#インタラクティブ。 C#インタラクティブウィンドウは、本質的にはread-eval-print-loop(REPL)であり、IntelliSense、構文の色付けなどのエディター機能を利用しながら、.NETテクノロジで遊んだり探索したりできます。C#の使用方法の詳細チャネル9でインタラクティブにするか、初心者向けのウォークスルーを読んでください。

  • csi。 Visual Studioを開いてC#で遊んだり、スクリプトファイルを実行したりしたくない場合は、開発者コマンドプロンプトからインタラクティブエンジンにアクセスできます。タイプcsi /path/myScript.csxスクリプトファイルを実行するか、単純にcsiと入力して、コマンドラインREPL内にドロップします。

  • スクリプトAPI。スクリプトAPIを使用すると、ホストが作成した実行環境でC#コードのスニペットを実行できます。コードサンプルを確認することで、独自のC#スクリプトエンジンを作成する方法について詳しく知ることができます。

Visual Studio 2015 Update 1 for .NET Managed Languagesの新機能 を参照してください。


https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx

>csi
Microsoft (R) Visual C# Interactive Compiler version 1.1.0.51109
Copyright (C) Microsoft Corporation. All rights reserved.

Type "#help" for more information.
> #help
Keyboard shortcuts:
  Enter         If the current submission appears to be complete, evaluate it.  Otherwise, insert a new line.
  Escape        Clear the current submission.
  UpArrow       Replace the current submission with a previous submission.
  DownArrow     Replace the current submission with a subsequent submission (after having previously navigated backwards).
REPL commands:
  #help         Display help on available commands and key bindings.
Script directives:
  #r            Add a metadata reference to specified Assembly and all its dependencies, e.g. #r "myLib.dll".
  #load         Load specified script file and execute it, e.g. #load "myScript.csx".
>
> Enumerable.Range(10)
(1,12): error CS7036: There is no argument given that corresponds to the required formal parameter 'count' of 'Enumerable.Range(int, int)'
> Enumerable.Range(1, 10)
RangeIterator { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
15
Athari

私はあなたが求めているもの、つまりVisualStudioの外部で実行されるRoslynベースのREPL)を正確に作成しました。

PoC --Roslyn C#ScriptEngine Execute v1.0.exe からダウンロードできます。これは、すべてのRoslynアセンブリを埋め込みリソースとして含むスタンドアロンのexeです。参照 ビデオ:O2のRoslynベースのC#の使用REPLスクリプト環境

より強力なC#REPL for O2 Platform を開発したことに注意してください。これは、 C#REPLスクリプト環境

Roslynのトピックについて、私が作成したいくつかの その他のスタンドアロンツール を次に示します。

これらのツールとO2プラットフォームはすべてオープンソースライセンスの下でリリースされているので、自由に拡張して改善してください:)

15
Dinis Cruz

私が見つけた唯一の実行可能ファイルはC:\Program Files (x86)\Microsoft Codename Roslyn CTP\Binaries\rcsi.exeで、これは.csxファイルを実行できます。しかし、実際にはREPLをサポートしていないようです。

6
svick

Scriptcsはどうですか: http://scriptcs.net/

REPLがあり、NuGetのパワーも利用できます。

代替品ではないかもしれませんが、私は主にRoslynPadを使用して迅速な調査とテストを行っています。 Linqpadも使用しました。 RoslynPadは、彼らのWebサイトによると「Roslynに基づく単純なC#エディター」です https://roslynpad.net/ 。あなたは小さなスクリプトを書くことができ、変数の値を見ることができ、それらを保存することもできます。

3
Turker Tunali

Anders Hejlsbergは、このビデオでC#REPLループを構築します。65分で:

http://channel9.msdn.com/Events/PDC/PDC08/TL16#time=65m00s

これはRoslynのはるかに古いバージョンですが、同じ考え方が当てはまります(そしてeval !;)。

powerShellを使用するfindcsi.exe

PS > Get-ChildItem "C:\Program Files (x86)\" -Recurse | Where-Object Name -CMatch "csi.exe"

以下は私の出力です:



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


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        12/9/2018   6:42 PM          15712 csi.exe                                                                                                                     
-a----        12/9/2018   6:42 PM           8482 csi.exe.config                                                                                                              


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\tools\Roslyn45


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        5/24/2018   1:38 PM          13680 csi.exe                                                                                                                     


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\tools\RoslynLatest


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        5/24/2018   1:38 PM          15280 csi.exe                                                                                                                     
-a----        5/24/2018   1:38 PM           8816 csi.exe.config                                                                                                              


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.1.3.2\tools


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        6/27/2016   2:50 PM          13680 csi.exe                                                                                                                     


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.2.0.1\tools


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----         3/7/2017  10:56 AM          14192 csi.exe                                                                                                                     
-a----         3/7/2017  10:56 AM           7905 csi.exe.config                                                                                                              


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.2.1.0\tools


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        4/13/2017   3:47 PM          14192 csi.exe                                                                                                                     
-a----        4/13/2017   3:47 PM           8006 csi.exe.config                                                                                                              


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.2.4.0\tools


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----        9/21/2017  11:42 PM          15312 csi.exe                                                                                                                     
-a----        9/21/2017  11:42 PM           8816 csi.exe.config                                                                                                              


    Directory: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.2.6.1\tools


Mode                LastWriteTime         Length Name                                                                                                                        
----                -------------         ------ ----                                                                                                                        
-a----       12/13/2017  10:09 PM          16296 csi.exe                                                                                                                     
-a----       12/13/2017  10:09 PM           8816 csi.exe.config                                                                                                              

0
Alan