You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio中使用Roslyn?及C#代码运行配置方法

嘿,我来一步步帮你搞定在Visual Studio里用Roslyn的事儿,还有你那段脚本代码的配置问题~

如何在Visual Studio中使用Roslyn?

Roslyn是微软的.NET编译器平台,在Visual Studio里用它主要分两种场景,配置方式略有不同:

  • 代码分析/重构场景:如果你想做自定义代码分析器、代码重构工具,直接创建「类库(.NET Standard/.NET Core)」项目,安装Microsoft.CodeAnalysis系列NuGet包(比如Microsoft.CodeAnalysis.CSharp)即可。Visual Studio本身内置Roslyn作为默认编译器,很多基础功能无需额外配置就能用。
  • 脚本执行场景:就是你代码里用到的动态执行C#脚本的功能,这需要额外安装脚本相关的NuGet包,下面重点说这个场景的配置。
你的Roslyn脚本代码的配置步骤

你这段代码用到的是Roslyn的脚本功能,但旧版的Roslyn.Scripting命名空间已经被整合到官方的Microsoft.CodeAnalysis.Scripting体系中了,需要做这些调整才能正常运行:

  1. 创建合适的项目
    打开Visual Studio,新建一个「控制台应用」项目(推荐用.NET Core/.NET 5+,或者.NET Framework 4.7.2及以上版本,避免兼容性问题)。

  2. 安装正确的NuGet包
    右键项目 → 「管理NuGet程序包」,在浏览页搜索并安装Microsoft.CodeAnalysis.CSharp.Scripting包(这是官方维护的最新脚本包,旧的Roslyn.Scripting已被弃用,别装错)。

  3. 替换命名空间引用
    把原来的旧命名空间替换为新的官方命名空间:

    using Microsoft.CodeAnalysis.Scripting;
    using Microsoft.CodeAnalysis.Scripting.CSharp;
    
  4. 适配API变化
    旧版的Session.Create()方法现在改为由ScriptEngine实例创建,同时最新版本推荐使用异步API,调整后的代码可以这样写:

    namespace RoslynScriptingDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 方式1:保留Session的写法
                var engine = new ScriptEngine();
                var session = engine.CreateSession();
                engine.Execute(@"var a = 42;", session);
                engine.Execute(@"System.Console.WriteLine(a);", session);
    
                // 方式2:更简洁的链式异步写法(推荐)
                // CSharpScript.ExecuteAsync(@"var a = 42; System.Console.WriteLine(a);").Wait();
            }
        }
    }
    
  5. 运行验证
    按F5启动项目,控制台应该会输出42,说明配置成功了。

额外注意点
  • 若使用.NET Framework,必须保证版本在4.7.2及以上,否则可能出现API兼容问题。
  • 安装NuGet包时优先选择稳定版,避免使用预发布版本踩坑。

内容的提问来源于stack exchange,提问作者user9570328

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:35