C# CodeDom System.TypeLoadException XamMac2 Xamarin macOS - PullRequest
0 голосов
/ 12 апреля 2020

Я пишу сложное приложение, которое использует CodeDom для создания экземпляров объектов с отражением. Однако он смешан между проектами netstandard2.0 (промежуточная оболочка, которая также поддерживает net461) и проектами net461.

Как я уже читал, очень возможно сделать ссылку на предыдущие версии фреймворка, в этом случае следующее:

{System.TypeLoadException: Could not resolve type with token 01000067 from typeref (expected class 'System.CodeDom.Compiler.CompilerParameters' in assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')  

Не учитывая системную ссылку, загружаемую в память для исполняемого файла Xamarin Ma c.

Что не подходит, так это код, который ищет сборку System, которая может быть перезаписана сборкой Xamarin System.

Знаете ли вы какой-нибудь обходной путь для этого? Кроме полной миграции оставшегося набора проектов для гибридизации между netstandard2.0 и net461.

Спасибо.

1 Ответ

0 голосов
/ 13 апреля 2020

Действительно.

Произошло несоответствие между сборкой System.CodeDom, которая упакована в System.dll, и той, на которую должен ссылаться проект для сборки.

Эта проблема решена путем нацеливания на netstandard2.0 с обоими установленными значениями net461.

  <PropertyGroup>
    <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
  </PropertyGroup>

Примерно так.

...