Вопрос

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

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

Это было полезно?

Решение

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

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

Использованная литература:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top