#c# #.net #visual-studio #visual-studio-2012
#c# #.net #visual-studio #visual-studio-2012
Вопрос:
Я хочу добавить ссылку на Microsoft.Office.Interop
к текущему проекту, но я могу только выбрать
но я могу найти их в GAC
На данный момент я решил добавить их, перейдя по пути в GAC
Но у меня все еще есть вопрос, почему может случиться так, что они у меня есть в GAC (установлен Office 2013), но я не могу найти их в Visual Studio 2012 при попытке добавить ссылку?
Ответ №1:
Ваше предположение о том, что в диалоговом окне VS перечислены сборки в GAC, неверно. В ней перечислены ссылочные сборки, они никогда не должны храниться в GAC. GAC содержит только сборки среды выполнения, они могут меняться в любое время при обновлении системы безопасности или исправлении ошибок. Ссылочные сборки должны быть стабильными, чтобы вы могли воспроизвести точно такую же сборку при последующей перестройке проекта.
PIA устарели и их больше не следует использовать. Те, которые вы нашли, находятся в старом GAC CLR v2 в c:windowsassembly . Они предназначены только для проектов, созданных со старыми версиями VS, VS2008 и ранее. GAC CLR v4 хранится в c:windowsmicrosoft.netassembly . Вы не найдете там никаких сборок взаимодействия Office.
Microsoft не предоставляет загрузку PIA для Office 2013, как это было для более старых версий Office. Они были тщательно и элегантно заменены функцией .NET 4.0 / VS2010 «Встраивать типы взаимодействия». Она же функция «Без PIA». Вместо этого вы должны добавить ссылку на вкладку COM. Например, «Библиотека объектов Microsoft Word 15.0» для взаимодействия с версией Word 2013. Вам не нужно ничего отправлять вместе с вашей программой и устанавливать PIA на компьютере пользователя, типы взаимодействия Word встроены в вашу программу при ее создании.
Комментарии:
1. Спасибо за подробный ответ!