DLL-библиотека смешанного режима, вызываемая из собственного приложения C, не может загрузить:
Произошло необработанное исключение типа «System.IO.FileLoadException» в неизвестном модуле.
Дополнительная информация: не удалось загрузить файл или сборку 'XXSharePoint, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = e0fbc95fd73fff47' или одна из ее зависимостей. Не удалось предоставить минимальные запросы на разрешение. (Исключение из HRESULT: 0x80131417)
Моя среда: родное приложение C, вызывающее DLL-библиотеку C ++ в смешанном режиме, которая затем загружает DLL C #. Это работает правильно при загрузке с локального диска, но при запуске с сетевого диска происходит сбой с вышеуказанными сообщениями.
Вызов LoadLibrary завершается успешно, как и GetProcAddress. Ошибка загрузки происходит, когда я вызываю функцию.
Я подписал цифровое приложение C и подписал «строгое имя» для двух библиотек DLL. PublickKeyToken в приведенном выше сообщении соответствует названной DLL. Я также выполнил команды CASPOL на моем клиенте, чтобы предоставить FullTrust этому ключу с указанием строгого имени. Когда это не сработало, я попытался командой CASPOL предоставить FullTrust URL-адресу сетевого диска (включая путь к каталогу моего приложения); без изменений в результатах.
Я попытался удалить все зависимости, чтобы была только начальная DLL смешанного режима ... Я заменил тела всех функций просто возвращением целочисленного значения "success". Результаты без изменений. Только когда я изменил его со смешанного режима на Win32 и изменил Свойства конфигурации >> Общие >> Поддержка времени общего языка с «Поддержка времени общего языка» на «Нет поддержки времени общего языка», вызов DLL вызвал ожидаемый результат (просто вернул целочисленное возвращаемое значение "success").