MissingMethodException с использованием COM через Excel и VBA - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть библиотека C #, из которой я выставил пару методов для COM, чтобы их можно было вызывать из Excel VBA. Эта библиотека ссылается на другую библиотеку .NEt от третьего лица. Все это работает очень хорошо при развертывании на Windows Server 2016. Когда он перемещается на экземпляр Windows Server 2012, я получаю исключение MissingMethodException, когда JIT-компилятор пытается JIT-метод с вызовом сторонней библиотеки.

Я могу скомпилировать код на целевом сервере и проверить его все нормально, я даже могу вызвать код без каких-либо проблем из другого приложения .Net. Только когда он вызывается из кода VBA, он не может загрузить и выполнить сторонний код.

Я изменил код в своей библиотеке для выполнения Assembly.LoadFrom () в 3-й частибиблиотека, и я могу затем использовать отражение, чтобы найти метод. Однако, если я затем вызываю метод из MethodInfo, я получаю ошибочный результат, и при проверке в окне QuickWatch у меня появляется сообщение «Внутренняя ошибка в компиляторе C #». Я могу отладить свой код, выполнив Excel и остановившись в моей библиотеке, и все выглядит нормально, кроме случаев, когда я пытаюсь выполнить метод, содержащий код, в сторонней библиотеке, поскольку JIT не скомпилирует его.

Как мнеотладка, почему JIT-компилятор не может найти и загрузить сборку, которую я использую?

...