Загрузка DLL (C # / IronPython / C #) в VS2012

Я хочу отлаживать отдельные части своего приложения в Visual Studio 2012.

У меня есть исполняемый файл C #, который работает с dll Oracle.DataAccess. Работает нормально. В нем вызывается среда выполнения IronPython, и она тоже отлично работает. В этих модулях IronPython вызывается объект из основного приложения C #, и он отлично работает с Oracle dll.

Если скрипт IronPython запускается автономно, он отлично работает и также отлично использует объект C #.

Однако в этом случае объект C # не видит Oracle dll.

Для отладки скриптов IronPython мне нужно создать отдельное решение Python, поэтому я не могу настроить свое решение C #. Так что я не могу контролировать ссылки C #. GAC имеет правильную dll Oracle, но как сказать C # dll использовать ее?

И наоборот, если я использую решение C #, где я могу управлять ссылками, я не могу добавлять файлы py и отлаживать их.

Как я могу настроить VS, чтобы иметь возможность запускать / отлаживать мое приложение с помощью C # с двойной записью или IronPython отдельно?


person Alex    schedule 30.11.2014    source источник


Ответы (1)


Вы можете попробовать воспроизвести то, что «работает для меня». Создайте решение, содержащее:

  • проект python (железный питон)
  • C # проект

Добавьте ссылку на желаемую библиотеку oracle (Oracle.DataAccess.dll) в проект C #, используя стандартный механизм VS. Проект C # также должен содержать этап пост-сборки, чтобы скопировать полученные dll и pdb в то место, где скрипт python может их найти. В моем случае корень проекта python.

Ваш проект python выбран как Startup Project. Я использую Ctrl-F5 и F5, чтобы запустить его. В обоих случаях все работает, как ожидалось. В режиме отладки я могу установить и нажать точку останова в python и в указанном модуле C #. Я вижу загружающуюся библиотеку oracle (окно вывода отладчика).

Тем не мение:

  • Трассировки стека предназначены только для C #.
  • Visual Studio 2013 Update 4 вместе с PTVS 2.1 дает сбой при отладке.
person Pawel Jasinski    schedule 01.12.2014