Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我试图运行脚本时,Roslyn崩溃了_C#_Roslyn - Fatal编程技术网

C# 当我试图运行脚本时,Roslyn崩溃了

C# 当我试图运行脚本时,Roslyn崩溃了,c#,roslyn,C#,Roslyn,我有这个课程: using Microsoft.CodeAnalysis.CSharp.Scripting; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RoslynExperiment { internal class Program {

我有这个课程:

using Microsoft.CodeAnalysis.CSharp.Scripting;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RoslynExperiment
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var result = ComputeAsync("1+2");
            Console.WriteLine(result.Result);
        }

        private static async Task<int> ComputeAsync(string formula)
        {
            return await CSharpScript.EvaluateAsync<int>(formula);
        }
    }
}

当我尝试执行脚本时,为什么会出现此异常?如何修复它?

这是Visual Studio和.Net中记录的问题。尝试将目标框架更改为

或者,您可以尝试将以下内容添加到.csproj中:

<ItemGroup>
  <PackageReference Include="Legacy2CPSWorkaround" Version="1.0.0">
    <PrivateAssets>All</PrivateAssets>
  </PackageReference>
</ItemGroup>

全部的

我建议您展示一下如何运行它。我如何运行它?我在Visual Studio中按F5。。。你的建议中我遗漏了什么吗?我被“脚本”这个词弄糊涂了,这让我相信它可能不是一个常规的应用程序。我以为你是从命令行运行的。除了“它存在”之外,我对C#脚本不是特别熟悉,所以这是一个很好的猜测:)嗯。。。真正令人困惑的是,我在调用ComputeAsync时出错,而不是在我实际尝试运行脚本的函数中……出于某种原因,我在项目中有一个无法删除的对System.Runtime的幻影引用;它显示为带有连接形状的蓝色图标,而不是常规的黑色图标。如果我双击这个引用,它会说它还没有构建……我认为将非库程序更改为.NET标准是行不通的。另一点可能是:)我尝试将ItemGroup添加到我的项目文件中,但没有帮助。如何将框架更改为.NET标准?该选项在“项目属性”的下拉列表中不可用。。。另外,我希望能够在.NETFramework上运行脚本!我意识到我可以用脚本代码创建一个.NET标准类库,并从我的主项目中引用它:)@ekolis Awesome!在我们都无法解决的情况下,很好地解决了这个问题。@jamesfdearborn您通过建议.NET标准为我指明了正确的方向!:)
<ItemGroup>
  <PackageReference Include="Legacy2CPSWorkaround" Version="1.0.0">
    <PrivateAssets>All</PrivateAssets>
  </PackageReference>
</ItemGroup>