Время выполнения MissingMethodException - PullRequest
0 голосов
/ 16 января 2020

Мы сталкиваемся со странной проблемой во время выполнения при запуске кода, использующего классы CSharpScripting.

Вот пример кода для воспроизведения ошибки:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        try
        {
            // Creating the script
            var compiled = CSharpScript.Create<string>(@"return ""ciao"";");
            compiled.Compile();
            var runner = compiled.CreateDelegate();

            var result = runner().GetAwaiter().GetResult();

            Assert.AreEqual("ciao", result);
        }
        catch (Exception ex)
        {

        }
    }
}

Тест не запускается , он компилируется, но выдает во время выполнения

System.MissingMethodException: Method not found: 'System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.Diagnostic> Microsoft.CodeAnalysis.Scripting.Script.Compile(System.Threading.CancellationToken)'.`

Любая помощь приветствуется!

1 Ответ

1 голос
/ 16 января 2020

Попробуйте обновить сборку Вот так

 <dependentAssembly>
    <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.1.37.0" newVersion="1.1.37.0" />
  </dependentAssembly>

Отражено Этот ответ

...