Общий код между двумя надстройками VSTO для Outlook - PullRequest
2 голосов
/ 13 ноября 2009

У нас есть ситуация, когда у нас будет две надстройки VSTO Outlook, которые начинаются с некоторого общего общего кода, но общий код, вероятно, со временем будет расходиться. В идеале мы хотели бы реструктурировать надстройки, чтобы разделить общий код в отдельную общую библиотеку DLL, но по нетехническим причинам это сейчас не вариант. Какие проблемы вы ожидаете, если обе надстройки развернуты в одном экземпляре Outlook? Вы видите проблемы, возникающие из-за того, что будут два класса с одним и тем же именем и тем же пространством имен, но с разными определениями, загруженными двумя разными надстройками в один и тот же экземпляр Outlook? Также одна из надстроек должна вызывать форму в другой надстройке. Как вы думаете, это будет проблемой с различиями в общем коде?

Если предположить, что нам удастся реструктурировать надстройки, чтобы отделить dll от общего кода, возникнет ли у Outlook проблема с различными версиями одной и той же dll, развернутой двумя разными надстройками?

1 Ответ

2 голосов
/ 13 ноября 2009

Мой текущий проект сделал похожий обмен кодами между надстройками VSTO для Word. На данный момент мы используем ссылки на другой проект с «copy local» во время компиляции, но хотели бы переключить это, чтобы ссылаться на общий код из GAC, чтобы мы освободились от сценария построения общего компонента, требующего перестроения всех проектов, которые зависят от него.

Если все ваши библиотеки общих библиотек «копируются локально» во время сборки, у вас не должно быть никаких конфликтов имен / пространств имен - но вам нужно будет перестраивать надстройку всякий раз, когда меняется код вашей общей библиотеки. Если вы хотите, чтобы сборки обрабатывались отдельно, создайте надстройку, которая будет служить библиотекой, которая устанавливает свою копию в GAC, чтобы ее могли использовать другие надстройки. Я включил несколько ссылок, которые показывают, как вызывать код из других надстроек. На практике я нашел это немного глупым из-за того, что VSTO является .Net поверх собственного кода Office.

Рекомендации:

...