F#有一个REPL(读取 - 评估 - 打印循环)F#Interactive,C:\Program Files (x86)\Microsoft F#\v4.0\Fsi.exe
。
我了解C#现在有自己的交互式REPL,与Roslyn一起发布。如何在Visual Studio外部打开? csi.exe
在哪里?
答案 0 :(得分:15)
我确切地创建了你要求的东西,一个基于Roslyn的REPL在VisualStudio之外运行。
您可以从PoC - Roslyn C# ScriptEngine Execute v1.0.exe下载它,这是一个包含所有Roslyn程序集作为嵌入资源的独立exe。另请参阅Video: Using O2's Roslyn-based C# REPL Script environment
请注意,我为O2 Platform开发了更强大的C#REPL,您可以在C# REPL Script Environment
中查看和下载关于Roslyn的主题,以下是我创建的一些other stand-alone tools:
请注意,所有这些工具和O2平台都是在开源许可下发布的,因此请随意扩展并使其更好:)
答案 1 :(得分:13)
C#Interactive 窗口和 csi.exe REPL已添加到 Visual Studio 2015 Update 1 (强调我的):
介绍交互式
交互式窗口又回来了! C#Interactive Window在Visual Studio 2015 Update 1中返回以及其他一些交互式处理:
C#Interactive 。 C#Interactive窗口本质上是一个read-eval-print-loop(REPL),允许您使用.NET技术进行游戏和探索,同时利用IntelliSense,语法着色等编辑器功能。了解有关如何使用C#的更多信息在第9频道进行互动或阅读我们的初学者演练。
<强> CSI 强> 。如果您不想打开Visual Studio来使用C#或运行脚本文件,则可以从Developer Command Prompt访问交互式引擎。键入
csi /path/myScript.csx
以执行脚本文件或只需键入csi
即可放入命令行REPL。脚本API 。 Scripting 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 }
答案 2 :(得分:6)
我找到的唯一可执行文件是C:\Program Files (x86)\Microsoft Codename Roslyn CTP\Binaries\rcsi.exe
,它可以执行.csx
个文件。但它似乎并没有真正支持REPL。
答案 3 :(得分:4)
脚本如何:http://scriptcs.net/?
有一个REPL,你甚至可以获得NuGet的力量。
答案 4 :(得分:4)
如果您使用的是dotnet core,请尝试使用dotnet-script。
运行viewModel.columns.push(column);
进行安装。
然后运行dotnet tool install --global dotnet-script
以获得REPL样式的命令提示符
dotnet-script
答案 5 :(得分:3)
它可能不是替代品,但我主要使用RoslynPad进行快速研究和测试。我也用过Linqpad。 根据他们的网站https://roslynpad.net/,RoslynPad是“基于Roslyn的简单C#编辑器”。你可以编写小脚本,你可以看到变量值',你也可以保存它们。
答案 6 :(得分:1)
Anders Hejlsberg在此视频中构建了一个C#REPL循环,时间为65分钟:
http://channel9.msdn.com/Events/PDC/PDC08/TL16#time=65m00s
这是Roslyn的旧版本,但同样的想法适用(和eval !;)。
答案 7 :(得分:0)
使用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