моно касание Не удается разрешить ссылку: System.Reflection.Emit.AssemblyBuilder - PullRequest
2 голосов
/ 08 мая 2011

Ошибка развертывания Monotouch:

если я использую System.Reflection (думаю, в этом причина)

Я получаю следующую ошибку при попытке развернуть

Не удалось связать сборки: Mono.Linker.ResolutionException: Невозможно разрешить ссылку: System.Reflection.Emit.AssemblyBuilder в Mono.Linker.Steps.MarkStep.ResolveTypeDefinition (тип Mono.Cecil.TypeReference) [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.MarkType (ссылка Mono.Cecil.TypeReference) [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.MarkMethodBody (тело Mono.Cecil.Cil.MethodBody) [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.ProcessMethod (метод Mono.Cecil.MethodDefinition) [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.Process () [0x00000] в: 0 в Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x00000] в: 0 в Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00000] в: 0 в MonoTouch.Tuner.Linker.Run (конвейер Mono.Linker.Pipeline, контекст Mono.Linker.LinkContext) [0x00000] в: 0

Все отлично работает в симуляторе. Если я не использую библиотеку, я могу развернуть приложение без проблем.

1 Ответ

1 голос
/ 09 мая 2011

System.Reflection.Emit не поддерживается Monotouch.Это потому, что весь код должен существовать в двоичном коде и на самом деле связан с компоновщиком после того, как он был создан досрочно компилятором.Если вы будете выдавать код из C #, то он никак не будет компилироваться во время выполнения в двоичный код, так как на iPhone нет полной среды выполнения .NET.компиляция во время выполнения в двоичный файл и связывание его (очень сложная проблема, кстати), это нарушит руководящие принципы Apple, утверждающие, что приложения не могут загружать любой код и изменять его поведение на лету., избегайте отражения как такового.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...