У меня есть визуальное студийное расширение (для VS 2017), которое использует Roslyn в некоторых функциях и ссылках System.Collections.Immutable, Version=1.2.2.0
.Когда я впервые запустил его, он жаловался, что у него нет ссылки на сборку System.Collections.Immutable
, поэтому я добавил его в source.extensions.vsixmanifest
(вместе с Microsoft.CodeAnalysis.CSharp.dll
и Microsoft.CodeAnalysis.dll
, как это происходит).
Это исправило мою проблему с отсутствующей сборкой, но теперь я получаю:
Метод не найден: 'System.Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Scripting.Script.Compile (System.Threading.CancellationToken) '.
Я полагаю, что он все еще может ссылаться на другую версию System.Collections.Immutable
при отладке расширения, если я попробую это:
System.Reflection.Assembly.GetAssembly(typeof(System.Collections.Immutable.ImmutableArray))
Я получаю:
Ошибка CS0433: Тип 'ImmutableArray' существует в обоих 'System.Collections.Immutable, Version = 1.2.2.0, Culture = нейтральный,PublicKeyToken = b03f5f7f11d50a3a 'и' System.Core, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 '
Есть ли способ решить эту проблему в расширении?(такие вещи, как .config
перенаправления сборки не очень хорошо работают, если вы не отредактируете собственный .config
Visual Studio, которого я бы предпочел избегать)