VSTO Outlook 2013 сторонняя dll не найдена

1

Я пытаюсь добавить стороннюю библиотеку к моему Outlook 2013, добавив написанную на С#. Он состоит из двух компонентов:.Net-оболочки и самой C++.

Я ссылаюсь на.net-оболочку в проекте добавления и добавил C++ lib в качестве копии на ресурсе сборки.

По-видимому, среда выполнения Office помещает каждый.Net lib, на который ссылается плагин в отдельной папке, за исключением C++ lib, на который он не ссылается. И плагин не может найти C++ lib, потому что он должен находиться в одной папке с исполняемой dll.

Пример расположения DLL-плагинов:

C:\Users\UserName\AppData\Local\assembly\dl3\TMGBBYEC.3JC\QE21JQR6.YRW\4a3206fe\4acfc661_ccc6cf01\SomeLibName.dll

Любые идеи, как это исправить?

Теги:
outlook
outlook-addin
ms-office
vsto

1 ответ

1
Лучший ответ

Для определения местоположения dll попробуйте следующее:

string codebase = Assembly.GetExecutingAssembly().CodeBase;
var vUri = new UriBuilder(codebase);
string vPath = Uri.UnescapeDataString(vUri.Path + vUri.Fragment);
string directory = Path.GetDirectoryName(vPath);
if (!string.IsNullOrEmpty(vUri.Host)) directory = @"\\" + vUri.Host + directory;
  • 0
    Спасибо, что я использовал свойство Location на сборке, вероятно, получал GAC'ish его местоположение. В реальности на аддин ссылались из bin / debug, проверяя установленную версию.
  • 0
    И установленная версия также нацелена на установочную папку. Хорошо, ясно, что c ++ lib является источником боли, так как нам удалось добавить Sqlite native libs нормально ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню