У меня серьезные проблемы с загрузкой переносимой библиотеки .NET (которая будет использоваться в стандартных средах .NET и Silverlight) из сценария Python.Как загрузить переносимую библиотеку .NET в скрипт Iron Python?
Версия файла. NET DLL - 4.0.3.319.233 (System.Core.DLL), IronPython - 2.7.1, работающий в режиме 32bit/x86. Visual Studio 2010 с C# в .NET 4. Также добавлена версия Microsoft .NET KB2468871 для использования портативной библиотеки (версия 2).
При попытке загрузить библиотеку из сценария Python:
clr.AddReferenceToFileAndPath(UsedPath+"\\MyNamespace\\MyPortableLibrary.dll")
не может быть доступен, и когда скрипт достигает тип, он говорит: «атрибут [тип в портативных сборках ] 'namespace #' только для чтения " , указывающий, что сборка не была загружена вообще (или как Silverlight и не может использоваться скриптом Python).
Изменение кода: (класс Ассамблеи от System.Reflection)
PortableAssembly = Assembly.LoadFrom(UsedPath+"\\MyNamespace\\MyPortableLibrary.dll") # load through .NET Reflection, Python won't load Portable assembly properly!
clr.AddReference(PortableAssembly)
приводит к ошибке: exceptions.IOError происшедшие Сообщение: [Errno 2] Не удалось загрузить файл или сборку «System .Core, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes 'или одна из его зависимостей. Система не может найти указанный файл.
Последний код, похоже, работает, когда скрипт Python вызывается автоматически из другой .NET-программы, создавая экземпляр собственного Python-движка, но дает указанную выше ошибку, когда сценарий выполняется из проекта Python в Visual Studio. Настройки Python в VisualStudio, Tools \ Options \ Python Tools \ Interpreter Options предназначены для режима x86/32bit. Все параметры среды показывают, что используется .NET 4.
Теперь у меня есть несколько способов исправить это из созданного C#/.NET сгенерированного Python-движка, но как загрузить переносимую сборку в базовую среду выполнения IronPython, чтобы она работала в правильной среде .NET 4 , не пытаясь загрузить какой-либо материал .NET 2?
Обновление: Я перезапустил и перестроил свою портативную библиотеку после обновления MS KB2468871, а также удалил инструменты IronPython и Python для VS, заменив их версиями 2.7.3 и 1.5 (VS2010). Ошибка с «System.Core, Version = 2.0.5.0» все еще происходит.
Вы нашли решение этой проблемы? Я столкнулся с этим уже 2 дня, и я не могу заставить его работать. –