UWP с Castle.Core: ошибка компиляции с нативной цепочкой инструментов .NET - PullRequest
0 голосов
/ 21 ноября 2018

В нашем приложении UWP при создании приложения с активированной цепочкой инструментов .NET мы получаем следующую ошибку:

Exception thrown: 'System.Exception' in Castle.Core.dll
An exception of type 'System.Exception' occurred in Castle.Core.dll but was not handled in user code
Method 'TypeBuilder.AddInterfaceImplementation(Type)' was not included in compilation, but was referenced in ClassEmitter..ctor(ModuleScope, string, Type, IEnumerable<Type>, TypeAttributes, bool). There may have been a missing assembly.

Наш файл Default.rd.xml выглядит следующим образом:

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
  <Application>
    <!--
      An Assembly element with Name="*Application*" applies to all assemblies in
      the application package. The asterisks are not wildcards.
    -->
    <Assembly Name="*Application*" Dynamic="Required All" />
  </Application>
</Directives>

Я не могу понять, что мне нужно добавить в файл Default.rd.xml, чтобы мое приложение работало также с активированной цепочкой инструментов .NET Native.

Мы используем Castle.Core для методаперехват в нашем Autofac IOC в нашем приложении UWP.

Спасибо за вашу помощь, Питер

1 Ответ

0 голосов
/ 23 ноября 2018

UWP не поддерживает System.Reflection.Emit.Иногда это может работать при отладке, но не работает в выпуске с собственной компиляцией .NET:

После того, как пакет NuGet System.Reflection.Emit был временно (временно) удален, мы (Касл) рассмотрели вопрос о том, должен ли DynamicProxy быть нацеленным на .NET Framework и .NET Core напрямую, и никогда не нацеливаться на .NET Standard, однако на .NETКоманда недавно официально добавила API emit в .NET Standard, ранее это было случайно в API .NET Standard.

...