Проект надстройки Office, проблемы с файлами dll и app.config - PullRequest
5 голосов
/ 18 октября 2011

У меня есть проект библиотеки, который я создал и использовал примерно в трех проектах. Проект WPF, проект Windows Forms и проект веб-приложения. DLL использует файл App.Config для различных общих для офиса ключей, таких как путь к сетевому накопителю. Поэтому теперь меня попросили создать плагин для MS Office 2010 Excel и Access соответственно.

Теперь я уже сталкивался с ситуацией, когда проект библиотеки будет использовать файл конфигурации для вызывающего проекта, поэтому мне пришлось добавить ключи в файл конфигурации этого проекта, поэтому я решил, что буду делать то же самое с этим проектом. Я прихожу, чтобы начать с ним возиться, чтобы посмотреть, как заставить приложения Office вызывать методы dll, и сразу же вижу, что он ничего не находит в файлах App.Config.

Посмотрев вокруг, я вижу, что надстройка Office - это на самом деле просто проект, реализующий интерфейс IDTExtensibility2 и регистрирующий себя как COM-dll. Так что теперь у меня есть ситуация, когда у меня есть DLL с зависимой DLL, и ни один из них не может найти ничего в файле конфигурации. Так, где бы я положил файл конфигурации в этом случае? Я попытался поместить его в папку Office 14 с помощью Excel.exe, а также поместить в ту же папку, что и рабочая таблица Excel, в которой используется надстройка, но безрезультатно. Любые идеи с благодарностью. Спасибо!

1 Ответ

3 голосов
/ 25 октября 2011

ОК, так что просто чтобы ответить на этот вопрос, как я в конце концов нашел его методом проб и ошибок.В случае, если вы пытаетесь использовать файл конфигурации для проекта надстройки Office, который ссылается на проект DLL, используемый файл конфигурации по-прежнему будет файлом вызывающего exe.То есть проект dll, вызываемый проектом надстройки, будет искать ключи, хранящиеся в MSACCESS.EXE.config и EXCEL.EXE.config соответственно.Используемый файл конфигурации просто продолжает идти вверх по цепочке DLL, пока не найдет фактический вызывающий файл конфигурации exe.

...