Visual Studio外部的C# REPL

1tuwyuhd  于 2023-08-07  发布在  C#
关注(0)|答案(9)|浏览(154)

F#有一个REPL(read-eval-print loop)F# Interactive,C:\Program Files (x86)\Microsoft F#\v4.0\Fsi.exe
我知道C#现在有自己的交互式REPL,就像Roslyn发布的那样。如何在Visual Studio之外打开?csi.exe在哪里?

btxsgosb

btxsgosb1#

  • C# Interactive* 窗口和 * csi.exe * REPL已添加到Visual Studio 2015 Update 1(强调我的):

互动介绍

交互式窗口回来了!C#交互式窗口在Visual Studio 2015 Update 1中返回,沿着其他一些交互式处理:

*C# Interactive。C#交互窗口本质上是一个读取-评估-打印循环(REPL),允许您使用.NET技术进行探索,同时利用编辑器功能,如IntelliSense,语法着色等。了解更多关于如何使用C#交互频道9或通过阅读我们的初学者演练。

  • csi*。如果您不想打开Visual Studio来玩C#或运行脚本文件,可以从开发人员命令提示符访问交互式引擎。键入 * csi /path/myScript.csx * 执行脚本文件,或简单地键入 * csi * 以将其放入命令行REPL中。
    *脚本接口。脚本API给予您能够在主机创建的执行环境中执行C#代码片段。您可以通过查看我们的代码示例了解更多有关如何创建自己的C#脚本引擎的信息。

请参阅What’s New in 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 }

字符串

oxiaedzo

oxiaedzo2#

我创建的正是你所要求的,一个在VisualStudio之外运行的基于Roslyn的REPL。
您可以从PoC - Roslyn C# ScriptEngine Execute v1.0.exe下载它,这是一个独立的exe,包含所有Roslyn程序集作为嵌入式资源。参见Video: Using O2's Roslyn-based C# REPL Script environment
请注意,我为O2 Platform开发了一个功能更强大的C# REPL,您可以从C# REPL Script Environment看到并下载它
关于Roslyn的主题,以下是我创建的一些other stand-alone tools

请注意,所有这些工具和O2平台都是在开源许可证下发布的,因此请自由扩展并使其更好:)

lyr7nygr

lyr7nygr3#

如果你正在使用dotnet core,那么试试dotnet-script。
运行dotnet tool install --global dotnet-script来安装。然后运行dotnet-script以获得REPL样式的命令提示符

> Console.WriteLine("Hello world!");
Hello world!

字符串
Info found here

ogsagwnx

ogsagwnx4#

我找到的唯一可执行文件是C:\Program Files (x86)\Microsoft Codename Roslyn CTP\Binaries\rcsi.exe,它可以执行.csx文件。但它似乎并不真正支持REPL。

smdnsysy

smdnsysy5#

scriptcs怎么样:http://scriptcs.net/
有一个REPL,你甚至可以获得NuGet的力量。

rt4zxlrg

rt4zxlrg6#

它可能不是替代品,但我主要使用RoslynPad进行快速研究和测试。我也用过Linqpad。RoslynPad是“一个基于Roslyn的简单C#编辑器”。你可以写一些小的脚本,你可以看到变量值,你也可以保存它们。

6uxekuva

6uxekuva7#

Anders Hejlsberg在这个视频中构建了一个C# REPL循环,时长65分钟:
http://channel9.msdn.com/Events/PDC/PDC08/TL16#time=65m00s
这是Roslyn的一个更老的版本,但同样的想法适用(和eval!;).

jfewjypa

jfewjypa8#

使用powershell查找csi.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

2g32fytz

2g32fytz9#

2023年最佳选择

现在最好的选择是使用CSharpRepl。行动胜于雄辩:


的数据

使用以下命令安装dotnet tool install -g csharprepl。要使用它,请在终端csharprepl中运行以下命令

它有很多功能,你甚至可以安装nuget包,或者通过引用它的汇编来使用你自己的代码。Documentation

相关问题