У меня есть приложение, разработанное в Visual Studio 2005, которое я развертываю с использованием ClickOnce. Мое решение содержит два проекта - слой пользовательского интерфейса, кодированный в VB, и библиотека классов, написанная на C #. В моей библиотеке классов C # есть некоторый код, который использует сборки взаимодействия Outlook и Excel (Microsoft.Office.Interop.Outlook и Microsoft.Office.Interop.Excel, обе версии 11). Вот мои вопросы.
- Хотя я не нашел, где это указано как абсолют, я понимаю, что вы ДОЛЖНЫ иметь соответствующие версии приложений Office (Outlook / Excel), чтобы установить приложение, использующее сборки Interop. Это правильно?
Если (1. = Да), то
Как бы вы справились с ситуацией, когда ваше приложение использует сборки Interop только для пары функций, которые будут использоваться только некоторыми избранными из общей пользовательской базы? Почему я должен требовать, чтобы каждый пользователь моего приложения устанавливал Microsoft Office, если только некоторым пользователям потребуется использовать эти функции? Эти сборки Interop представляют собой просто файлы .dll , поэтому они настолько отличаются от других, что вы не можете просто опубликовать файл с вашим проектом и получить ссылку, которая не зависит от того, какое программное обеспечение установлено на клиент? (Ясно, что у меня плохое понимание GAC, и это влияет на поведение Visual Studio.) Я был бы рад написать свой собственный код, чтобы проверить наличие необходимого программного обеспечения Office для тех немногих функций, которые их используют. Нет офиса, нет доступа к функции ...
прочее
Если мое понимание этого неверно, то КАК настроить мои ссылки и настройки ClickOnce, чтобы при попытке установки пользователи не сталкивались со следующей ошибкой?
"Невозможно установить или запустить приложение. Приложение требует, чтобы сначала в глобальный кэш сборок (GAC) была установлена сборочная редакция версии 11.0.0.0.
Пожалуйста, свяжитесь с вашим системным администратором. "
- Я попытался установить для свойства Interop ссылки CopyLocal значение True и False.
- В своем списке файлов приложений ClickOnce я попытался установить для этих сборок значения «Включить», «Исключить» и «Необходимые условия».
- В своем исследовании я видел, как некоторые люди ссылаются на * C: \ WINDOWS \ assembly \ GAC *, моя указывает на * C: \ Program Files \ Microsoft Visual Studio 9.0 \ Инструменты Visual Studio для Office \ PIA \ Office11 * но я не нашел способ изменить ссылочный путь. Согласно http://msdn.microsoft.com/en-us/library/ez524kew(VS.80).aspx вы НЕ МОЖЕТЕ добавлять ссылки из GAC, так как же это удалось другим людям?
- Я попытался скопировать ссылки из * C: \ Program Files \ Microsoft Visual Studio 9.0 \ Visual Studio Tools для Office \ PIA \ Office11 * в каталог моего проекта и сослаться на них там.
Конец, если
Полагаю, главное, что мне нужно знать, это как / если я могу включить эти сборки в мою публикацию и удовлетворить или обойти требование GAC.
По возможности, пожалуйста, постарайтесь ответить на мои конкретные вопросы как можно более прямо. Хотя статьи полезны, я уже прочитал МНОГО статей и попробовал МНОГО предложенных решений, но не нашел успеха. Имейте в виду мое непонимание того, как все это работает с самого начала.
Простите за отсутствие понимания и спасибо за любую помощь, которую вы можете предложить. Это высоко ценится!