我如何 运行 使用 Roslyn 使用 nuget 包的脚本?

How can I run a script which uses nuget package using Roslyn?

我想使用 Roslyn 来 运行 动态编码。

问题

当我想 运行 通过 Roslyn 使用 NuGet 包的代码时,它失败了,因为命名空间中不存在类型或命名空间名称。
如何添加引用?

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Loader;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Emit;
using Microsoft.CodeAnalysis.Scripting;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      var option = ScriptOptions.Default.WithImports("System");
      try
      {
        var script = CSharpScript.Create(@"
        using Microsoft.CodeAnalysis.Scripting;
        ", option);
        script.RunAsync();

      }
      finally
      {
      }
    }
  }
}

与您对 System 所做的相同,您也可以对其他程序集执行此操作,用它替换第 19 行,它应该可以工作:

var option = ScriptOptions.Default.WithReferences(typeof(Microsoft.CodeAnalysis.Scripting.Script).Assembly);