【问题标题】:C# interactive window won't reference my codeC# 交互式窗口不会引用我的代码
【发布时间】:2017-09-13 13:21:29
【问题描述】:

在 Visual Studio 2017 中,我尝试在 c# 交互窗口中运行一些代码。 这适用于非常简单的情况(例如使用系统) 但是,当我尝试引用稍微晦涩的库时,它会失败

using Microsoft.AspNetCore.Cryptography.KeyDerivation;

(1,17):错误 CS0234:类型或命名空间名称“AspNetCore”不 存在于命名空间“Microsoft”中(您是否缺少程序集 参考?)

这是一个 dot net core 2.0 项目,有人建议我可以右键单击该项目并选择“Initialize Interactive with Project”,但是这个选项在项目或解决方案中都没有出现。

我需要知道如何为交互式窗口添加对代码库的引用。

【问题讨论】:

    标签: c# visual-studio-2017 roslyn


    【解决方案1】:

    您需要 add a reference 到您计划使用的任何“更晦涩”的库。

    #r 用于引用程序集。下面是一些例子:

    #r "path/MyAssembly.dll" #r "MicrosoftLibrary",例如,#r "System.Collections.Generic" 注意:交互式窗口不 目前支持#r'ing NuGet 包。作为临时解决方法, 引用 NuGet DLL。

    【讨论】:

    • 谢谢,花了一些时间才发现这些 dll 位于我的 C:\Users 文件夹中,但这成功了
    • 它让我陷入了一个循环,即始终需要引号。
    【解决方案2】:
    1. 通过导航到“视图 > 其他窗口 > C# 交互”打开交互窗口

    2. 右键单击您的项目并选择“初始化与项目的交互”

    【讨论】:

    【解决方案3】:

    你可以这样写

    #r "Microsoft.AspNetCore.Cryptography.KeyDerivation"
    

    VS 将注册它,如果它会在 GAC 中找到它。如果您的磁盘上某处有 DLL。传递路径而不是字符串,它将注册它。

    如果您在项目中注册了引用,您只需右键单击,即可选择使用 c# 与当前项目交互。

    【讨论】:

    • 是的,当我右键单击时,我没有选择使用 c# 交互。我不确定这是否是因为我使用的是 .net 核心
    猜你喜欢
    • 2012-06-23
    • 2021-08-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多