Подтвердить что ты не робот

С# REPL за пределами Visual Studio

F # имеет REPL (цикл чтения-eval-печати) F # Interactive, C:\Program Files (x86)\Microsoft F#\v4.0\Fsi.exe.

Я понимаю, что у С# теперь есть свой собственный интерактивный REPL, выпущенный с Roslyn. Как открыть внешнюю среду Visual Studio? Где csi.exe?

4b9b3361

Ответ 1

С# Интерактивное окно и csi.exe REPL были добавлены в Обновление Visual Studio 2015 1 (выделено мной):

Представляем интерактивные

Интерактивное окно снова! С# Interactive Window возвращается в Visual Studio 2015 Update 1 вместе с несколькими другими интерактивными образами:

  • С# Интерактивный. Окно С# Interactive - это, по сути, цикл read-eval-print-loop (REPL), который позволяет вам играть и исследовать с помощью технологий .NET, используя преимущества таких функций редактора, как IntelliSense, синтаксис-раскраска и т.д. Узнайте больше о том, как использовать С# Интерактивный на канале 9 или прочитав прохождение наших новичков.

  • ЦСИ. Если вы не хотите открывать Visual Studio для работы с С# или запускать файл script, вы можете получить доступ к интерактивному движку из командной строки Developer. Введите csi /path/myScript.csx для выполнения файла script или введите просто csi, чтобы удалить его в командной строке REPL.

  • API-интерфейсы Scripting. API-интерфейсы Scripting дают вам возможность выполнять фрагменты кода С# в среде выполнения, созданной хостом. Вы можете узнать больше о том, как создать собственный движок С# script, проверив наши образцы кода.

См. Что нового в Visual Studio 2015 Update 1 для управляемых языков .NET.


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

Я создал именно то, что вы просите, REPL на основе Roslyn, работающий за пределами VisualStudio.

Вы можете скачать его из PoC - Roslyn С# ScriptEngine Execute v1.0.exe, который является автономным exe, содержащим все сборки Roslyn, как встроенные ресурсы. См. Также Видео: использование среды С# REPL Script на основе O2 Roslyn

Обратите внимание, что я разработал более мощный С# REPL для O2 Platform, который вы можете увидеть и загрузить с С# REPL Script Окружающая среда

По теме Roslyn, вот несколько других автономных инструментов, которые я создал:

Обратите внимание, что все эти инструменты и платформа O2 выпущены под лицензией Open Source, поэтому, пожалуйста, не стесняйтесь расширять и улучшать их:)

Ответ 3

Единственный исполняемый файл, который я нашел, - C:\Program Files (x86)\Microsoft Codename Roslyn CTP\Binaries\rcsi.exe, который может выполнять файлы .csx. Но, похоже, он не поддерживает REPL.

Ответ 4

Как насчет скриптов: http://scriptcs.net/?

Существует REPL, и вы даже получаете мощность NuGet.

Ответ 5

Это не может быть заменой, но я в основном использую RoslynPad для быстрого исследования и тестирования. Я также использовал Linqpad. RoslynPad - "простой редактор С#, основанный на Roslyn", согласно их веб-сайту https://roslynpad.net/. Вы можете писать небольшие скрипты, и вы можете видеть значения переменных, и вы также можете их сохранить.

Ответ 6

Андерс Хейлсберг строит цикл С# REPL в этом видео, 65 минут:

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

Это гораздо более старая версия Roslyn, но те же идеи применяются (и eval!;).

Ответ 7

используйте powershell find 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