Метод CommonCreateArrayTypeSymbol не имеет реализации - PullRequest
1 голос
/ 31 октября 2019

У меня есть очень простой код, который использует nuget Microsoft.CodeAnalysis.CSharp.Scripting :

var script = CSharpScript.Create($@"
IntProp1 = 123;
IntProp2 = 456;
return IntProp1 + IntProp2;
");
var errors = script.Compile();

Он прекрасно работал месяц назад, теперь внезапно я началздесь получают исключение:

System.TypeLoadException: 'Method 'CommonCreateArrayTypeSymbol' in type 'Microsoft.CodeAnalysis.CSharp.CSharpCompilation' from assembly 'Microsoft.CodeAnalysis.CSharp, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.'

1 Ответ

0 голосов
/ 31 октября 2019

Я выяснил, что у меня не совпадали версии зависимостей nuget:

<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="3.3.1" />
<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="3.1.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="3.1.0" />
<PackageReference Include="Microsoft.CodeAnalysis.Scripting" Version="3.1.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.6.0" />

Как только я обновил «Microsoft.CodeAnalysis.Common» с «3.3.1» до «3.1.0» - все вернулоськ норме.

...