Ошибка компиляции определения рабочего процесса

Я получаю следующую ошибку при попытке загрузить рабочий процесс из его определения:

Compilation failures occurred: 

     Line 0: Unable to load assembly 'PI.Shared.WF.Activities.Tests'.    Line 581: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Complete results are contained in the Data property of this exception.  Please correct the errors in the source and retry the Load.

Мой код просто загружает его из потока памяти byte[], который является содержимым файла XAML.

Что он должен делать? Этот проект PI.Shared.WF.Activities.Tests представляет собой просто библиотеку классов, которую я использую для рисования рабочих процессов. После этого сам файл сериализуется в byte[] и сохраняется на лазурном хранилище. Когда нам нужно загрузить его, просто получите byte[] и перейдите к:

activity = ActivityXamlServices.Load(new MemoryStream(workflowDefinition.Definition), settings);

Где определение — это byte[] с данными файла.

Что я должен упустить? «PI.Shared.WF.Activities.Tests» в любом случае даже не используется внутри хост-приложения рабочего процесса.

Спасибо


person Gutemberg Ribeiro    schedule 28.01.2015    source источник


Ответы (1)


Нашел проблему. Это библиотеки PCL, которые используют поддельные / фасадные сборки, которые перенаправляют на mscorlib после 4.5 framework, и компилятор рабочего процесса не знает (пока) об этом.

Посмотрите на эту проблему в MS Connect, и там есть обходной путь:

http://connect.microsoft.com/VisualStudio/feedback/details/800070/pcl-reference-in-a-workflow-project-destroys-intellisense

person Gutemberg Ribeiro    schedule 29.01.2015