C#交互式窗口可以与我的代码交互吗?

Col*_*nic 147 .net c# visual-studio roslyn

我安装了Roslyn.现在,如果我知道在Visual Studio中查看的位置,我可以打开"C#交互式窗口",然后运行代码:

> 5 + 3
8
Run Code Online (Sandbox Code Playgroud)

那很可爱.现在我该如何与我的代码进行交互-my类?假设我打开了一个项目.

> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

slo*_*oth 192

使用Visual Studio 2015时:

您可以通过导航到" 视图">"其他Windows">"C#Interactive"打开"交互"窗口,

然后右键单击您的项目并从上下文菜单中运行Initialize Interactive with Project.


对于旧版本:

要在代码中使用C#Interactive Window,请确保首先编译代码,然后使用如下#r命令添加对生成的程序集的引用:

C#命令提示符


您也可以使用立即窗口与您的代码进行交互,如下所示:

即时窗口

  • @JohnDhom为什么选择downvote?我的答案完全展示了如何通过C#交互式窗口与您自己的代码进行交互(甚至还有截图显示). (23认同)
  • 在.Net Core项目中,不显示上下文菜单项,因此需要#r方法.这个答案非常适合. (5认同)
  • 谢谢。我更喜欢 C# 交互式窗口。即时窗口不友好,没有自动完成功能。`Console.WriteLine("hey") 名称 'Console' 在当前上下文中不存在 System.Console.WriteLine("hey") 表达式已被评估并且没有值` (2认同)
  • 我想添加一个有用的提示:如果您想使用一些运行时的东西,则可以轻松地添加以下指令:#r“ System.Runtime” (2认同)

Bot*_*000 67

您可以使用自己项目中的类.
只需右键单击您的解决方案,然后选择"从项目重置交互".

如果您需要更多信息,请参阅以下内容:
使用Roslyn附带的C#交互式窗口 - 第2部分

  • 这些都不再适用于VS 2015.上下文菜单命令消失了,`#r`找不到我的项目程序集.有任何想法吗? (25认同)
  • 在VS 2015 Update 3中,右键单击解决方案中的项目(在解决方案资源管理器中),有一个"与项目初始化交互". (18认同)
  • 遗憾的是,Visual studio 2022 中不存在这些(重置或通过交互初始化):( (2认同)

Wiz*_*mer 41

只是来自@ Botz3000答案的更新.

您要查找的命令现在称为"使用项目初始化交互"

在此输入图像描述

另外值得注意的是,如果我的C#交互式窗口不可见,我找不到这个命令.

  • 不,这不对.我在截图指出的完全相同的位置得到它. (11认同)
  • 我试图让它与NetStandard库一起使用,并且上下文菜单中没有该选项 (9认同)
  • 不适用于新的csproj格式...令人失望. (7认同)
  • @Tom似乎根据您正在使用的项目类型起作用或不起作用.当你找到它时,你正在使用的项目类型是什么? (3认同)
  • 不适用于Uwp项目......令人失望 (3认同)

Mah*_*afy 34

值得注意的是,VS 2019 for .Net Core 项目尚不支持该功能。

您找不到该选项,这是一个已知问题,如本答案“/sf/ask/3922963271/ -在视觉'

解决方法是使用 #r 命令 ( #r "Path/MyDll.dll") 手动加载程序集,如上面的答案所示。

  • 在 VS2022 中使用 dotnet6 仍然是这种情况。我们必须耐心等待该功能重新推出。 (7认同)

bel*_*kiy 5

完全同意“与项目进行交互”是很酷的。

我的做法是推类到库和使用 // css_reference在C#脚本或r组成的C#互动窗口

例如:

#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;
Run Code Online (Sandbox Code Playgroud)