38

F# 有一个 REPL(读取-评估-打印循环)F# Interactive C:\Program Files (x86)\Microsoft F#\v4.0\Fsi.exe,.

我知道 C# 现在有自己的交互式 REPL,与Roslyn一起发布。如何在 Visual Studio 外部打开?在哪里csi.exe

4

8 回答 8

23

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

介绍互动

交互式窗口又回来了!C# 交互窗口在 Visual Studio 2015 更新 1 中返回,同时还提供了一些其他交互功能:

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

  • CSI _ 如果您不想打开 Visual Studio 来玩弄 C# 或运行脚本文件,可以从开发人员命令提示符访问交互式引擎。键入 csi /path/myScript.csx 以执行脚本文件,或仅键入 csi 以放入命令行 REPL。

  • 脚本 API。脚本 API 使您能够在主机创建的执行环境中执行 C# 代码片段。通过查看我们的代码示例,您可以了解有关如何创建自己的 C# 脚本引擎的更多信息。

请参阅.NET 托管语言的 Visual Studio 2015 Update 1 中的新增功能


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 }
于 2015-12-01T23:33:14.597 回答
18

我创建了您所要求的内容,即在 VisualStudio 之外运行的基于 Roslyn 的 REPL。

您可以从PoC - Roslyn C# ScriptEngine Execute v1.0.exe下载它,它是一个独立的 exe,包含所有 Roslyn 程序集作为嵌入式资源。另请参阅视频:使用 O2 的基于 Roslyn 的 C# REPL 脚本环境

请注意,我为O2 平台开发了一个更强大的 C# REPL,您可以从C# REPL Script Environment查看和下载它

关于 Roslyn 的主题,这里有一些我创建的其他独立工具

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

于 2012-08-03T03:49:15.463 回答
8

如果您使用的是 dotnet core,请尝试 dotnet-script。

运行dotnet tool install --global dotnet-script安装。然后运行dotnet-script得到一个 REPL 风格的命令提示符

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

在这里找到的信息

于 2020-03-04T14:36:12.990 回答
6

scriptcs怎么样:http: //scriptcs.net/

有一个 REPL,您甚至可以获得 NuGet 的强大功能。

于 2014-11-19T07:57:11.800 回答
6

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

于 2012-06-11T13:32:35.370 回答
4

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

于 2017-12-23T14:49:21.437 回答
3

Anders Hejlsberg 在这个视频中构建了一个 C# REPL 循环,65 分钟:

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

这是 Roslyn 的旧版本,但同样的想法也适用(和评估!;)。

于 2012-07-21T11:36:29.243 回答
2

使用 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                                                                                                              

于 2019-07-01T06:53:19.937 回答