Файл VSTO не найден - PullRequest
       0

Файл VSTO не найден

0 голосов
/ 24 января 2020

Я собираю надстройку VSTO для MS Outlook. Надстройка предназначена для использования неуправляемой библиотеки C ++. Доступ к библиотеке осуществляется через проект C ++ / CLI (CLR). Я получаю сообщение об ошибке «Файл не найден» при запуске ADDIN напрямую. Похоже, что надстройка имеет проблемы со связанной неуправляемой библиотекой C ++. Библиотека полностью упакована в проект C ++ / CLI, и для ее использования не требуется знание неуправляемой библиотеки C ++. Самым странным аспектом этой ситуации является то, что если я запускаю ADDIN из Visual Studio, все загружается правильно. Я подтвердил, что все используемые библиотеки находятся там, где они должны. Мне неясно, почему надстройка не запускается (если не запускается из Visual Studio).

Примечание. Я проверил это, выполнив тест, в котором я создал библиотеку C ++ с одним классом и C ++ /. Библиотека CLI с одним классом, который создает экземпляр класса из первой библиотеки. Я пытаюсь подключиться к библиотеке C ++ / CLI из проекта VSTO. Я получаю файл не найдена ошибка. Я чувствовал, что это был самый простой тест для проверки / определения происходящего.

Питер Питер

1 Ответ

0 голосов
/ 24 января 2020

Проблема касалась моих предположений, основанных на том, где что-то было размещено. У меня был установщик, который развернул надстройку в целевом месте развертывания. Все файлы пошли в эту папку. Я думал, что если все библиотеки находятся в одном месте, их все нужно найти. Это было основано на моем представлении о том, что приложение запускается и ищет файлы в первую очередь локально. Моя ошибка состояла в том, что приложение, которое запускалось, было Office Outlook - и оно работает в определенной папке c. Когда я получил файл не найден, я подумал, что этого не может быть, потому что файлы все вместе. НО продукты Office при загрузке ADD Ins не ищут в том месте, где определено, что надстройка находится (в отличие от неуправляемых DLL-библиотек - управляемых - может быть иного).

Конечный результат состоял в том, что неуправляемая DLL не была обнаружена, потому что она не обнаруживалась ни в одном из расположений хранилища Windows. Таким образом, правильным было обновить путь, чтобы указать местоположение этого дополнения. Что решило проблему не найден. Что раздражает, так это то, что отладчик Visual Studio, похоже, работает над аспектом определения библиотек DLL, из которых запускается приложение. Что в целом хорошо - за исключением того, что с VSTO запускаемое приложение находится где-то еще, - но VS все еще искал в папке проекта папку, чтобы найти файлы. Делая это несколько неясным. Это не должно происходить. Отладка VS должна попытаться или, по крайней мере, быть настраиваемой для работы в контексте сценария реального мира. Если это произойдет - я, конечно, не смог найти эту конфигурацию.

Питер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...