Как сослаться на сборку, созданную на основе версии v2.0.xxx среды выполнения в IronPython 2.7? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь создать оболочку для сборки (thirdPartyDLL), которая была создана для версии v2.0.50727 среды выполнения.Но всякий раз, когда я пытаюсь сослаться на него в коде IronPython, это всегда приводит к следующей ошибке

IOError: System.IO.FileLoadException: сборка смешанного режима построена для версии 'v2.0.50727' извремя выполнения и не может быть загружено в среде выполнения 4.0 без дополнительной информации о конфигурации.

Моя оболочка является только библиотекой классов, поэтому в ней нет app.config или app.exe.config.

  1. Я пытался изменить целевую платформу моей библиотеки на .NET Framework 2.0, но это не сработало.Дали мне ту же ошибку.
  2. Даже пытался http://reedcopsey.com/2011/09/15/setting-uselegacyv2runtimeactivationpolicy-at-runtime/, но это не сработало в python и дало мне следующее исключение

    Среда выполнения уже связана с наследствомиспользование политики активации.

Код Python довольно прост

import clr
import sys
sys.path.append(r"directoryPath")
clr.AddReference(r"Test.dll")
from Test import *
testObj = testClass()
raw_input("Press enter key to continue..")

Библиотека классов оболочек имеет следующие значения:

namespace Test
{
    public class testClass()
    {
        public testClass()
        {
            thirdPartyDLLClass tClass = new thirdPartyDLLClass();
        }
    }
}

Я просто хочу скомпилировать и запустить программу IronPython без исключений.Я любой могу предложить что-то новое, что я не пробовал, тогда это было бы так полезно.Я очень плохо знаком с Python, но я достаточно хорош в C #.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 июня 2019

Решил, внеся изменения в мой файл PythonApp.exe.config.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.x.x"/></startup>
</configuration>

Если у вас нет файла конфигурации, просто создайте файл .config с тем же именем, что и ваш pythonимя приложения.

...