У меня есть проект C# VS 2005, в котором используется специальная папка плагинов для загрузки дополнительных библиотек DLL (для использования в качестве узлов в процессе преобразования активов).
У меня есть смесь библиотек C# и C++ в этой папке.
У меня проблема в том, что когда теневое копирование включено, библиотеки C++ отказываются загружаться с помощью Assembly.LoadFrom. Я попытался создать собственный домен приложения и использовал Load, но это также не удалось.
Наконец, я попытался прочитать DLL в виде данных byte[] и использовать для этого Load - опять же, только DLL C # будут работать таким образом с ошибкой «Дополнительная информация: непроверяемый код не прошел проверку политики». (Исключение из HRESULT: 0x80131402) ".
Статья в сети побудила меня попытаться использовать /clr:safe при сборке этой конкретной DLL, но затем ее просто не удалось собрать из-за тысяч ошибок в коде Microsoft... (видимо)
Если теневое копирование отключено, LoadFrom отлично работает для всех библиотек DLL. Приложение само по себе является плагином для Maya, и раньше оно работало с Maya 8.5, но не работает с 2008/2009 (если включено теневое копирование).
Мы действительно предпочли бы использовать теневое копирование, потому что оно предотвращает блокировку файлов DLL во время работы приложения (папка плагинов хранится в месте, которое Perforce может обновлять во время работы приложения).
Любые идеи относительно того, как я могу убедить теневое копирование работать с пользовательской папкой И сочетанием библиотек C # / C ++ без этих проблем?