Как разместить движок IronPython в отдельном домене приложений?

Я попробовал очевидное:

var appDomain = AppDomain.CreateDomain("New Domain");
var engine = IronPython.Hosting.Python.CreateEngine(appDomain); // boom!

Но я получаю следующее сообщение об ошибке:Тип не разрешен для пользователяMicrosoft.Scripting.Hosting.ScriptRuntimeSetup, Microsoft.Scripting, версия = 0.9.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 '.

Погуглить на эту ошибку не оказалось плодотворным софар ...

РЕДАКТИРОВАНИЕ № 1:

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

using System;
using Microsoft.Scripting;

namespace PythonHostSamle
{
    class Program
    {
        static void Main(string[] args)
        {
            AppDomain sandbox = AppDomain.CreateDomain("sandbox");
            var engine = IronPython.Hosting.Python.CreateEngine(sandbox);
            var searchPaths = engine.GetSearchPaths();
            searchPaths.Add(@"C:\Python25\Lib");
            searchPaths.Add(@"C:\RevitPythonShell");
            engine.SetSearchPaths(searchPaths);
            var scope = engine.CreateScope();
            //scope.SetVariable("revit", _application);
            //engine.Runtime.IO.SetOutput(new ScriptOutputStream(_instance),     Encoding.UTF8);
            //engine.Runtime.IO.SetErrorOutput(new ScriptOutputStream(_instance),     Encoding.UTF8);
            var script = engine.CreateScriptSourceFromString("print 'hello, world!'",     SourceCodeKind.Statements);
            script.Execute(scope);

            Console.ReadKey();
        }
    }
}

Это работает как ожидалось!

Таким образом, мне остается сделать вывод, что полученная ошибка связана содна из строк, которые я закомментировал: Область, добавленная в движок, содержит объект, над которым у меня мало контроля - ссылка на хост плагина, в котором предполагается запускать это программное обеспечение (Autodesk Revit Architecture 2010).

Может быть, пытаясь передать это то, что создает ошибку?

Есть ли способ передать прокси вместо этого? (придется искать .NET Remoting ...)

РЕДАКТИРОВАТЬ № 2:

Я свел проблему к передаче объекта через область, которая не может быть передана другому домену приложения: все объекты, добавленные в область интерпретатора IronPython, работающего в другом домене приложения, должны будут каким-то образом маршалироваться и, следовательно, либо расширятьсяMarshalByRefObject или бытьSerializable

Ответы на вопрос(1)

Ваш ответ на вопрос