Подтвердить что ты не робот

Могу ли я использовать Microsoft.Office.Interop сборки с Office 2013?

Мне пришлось импортировать более старый проект (в .Net 2) в Visual Studio 2013, он использует Microsoft Primary Interop Assemblies.

Visual Studio заявила, что мне нужно добавить ссылки на проект. Теперь я пошел и сделал чтение, и, по-видимому, Microsoft только выпустила PIA для офиса 2010 года? (У меня есть Office 2013)

Теперь я хотел бы знать.

  • Могу ли я заставить его работать с офисом 2013 года и быть обратно совместимым?
  • И если это хороший путь для будущего? Это будет совместимо? Поскольку я вижу, что вам нужно .Net 2 (самое позднее), а Windows 8 поставляется с 4.5, а не 3 (по умолчанию), а большинство новых компьютеров будут иметь Office 2012 или 2013.
4b9b3361

Ответ 1

PIA - это исторический артефакт, который требуется только старым версиям .NET(до версии v4). Они были тщательно и элегантно заменены функцией "Вставить типы взаимодействия", также известной как функция "Нет PIA". Поддерживается с Visual Studio 2010, вы найдете его обратно в окне "Свойства" при выборе ссылочной сборки. По умолчанию он равен True. Хорошее видео, которое охватывает основные технологии, доступно здесь.

Именно по этой причине Microsoft не публикует PIA для Office 2013, они ожидают, что вы включите типы взаимодействия.

Эта функция очень желательна, она позволяет избежать того, что ваш клиент должен установить PIA на своем компьютере и включить вас в свой установщик. Решение проблемы, когда никто не заботится об этом, является слишком распространенным случаем. Кроме того, PIA для Office очень большие, большое преимущество внедрения типов interop заключается в том, что ваша сборка содержит только те типы, которые вы используете. Многие мегабайты сократились до нескольких килобайт.

Рабочий процесс немного отличается. Вместо добавления ссылки на сборки Microsoft.Office.Interop, доступные в диалоговом окне "Добавить ссылку", вкладке ".NET Framework", вы теперь используете вкладку "COM". И выберите, скажем, "Microsoft Excel 15.0 Object Library", чтобы создать типы взаимодействия для программы, использующей Excel. Если вы загружаете старый проект, который ранее использовал PIA, просто удалите эти ссылочные сборки и добавьте их обратно со вкладки COM.

Обратите внимание, что функция потеряна, умышленно нацеливаясь на старую версию Office, которую вы фактически не установили на вашей машине dev, сложнее. Если это требование, то вам все еще нужны PIA для этой версии, принудительно введите типы вложений в True в окне "Свойства". На самом деле это сомнительно, Microsoft с трудом сохраняет новые версии Office полностью совместимыми со старыми версиями. Они держали его на руках уже 15 лет, но у него не было сил. Наихудший сценарий нацелен на более новую версию, чем вы установили на свой компьютер, что может привести к сбою вашей программы с очень трудными для диагностики исключений типа AccessViolationException.

Обратите внимание, что вы должны внести небольшие изменения в свой код, чтобы он мог работать. Синтетические "XxxxClass" классы не встроены, а только интерфейсы "Xxxx". Просто удалите слово "Class" из нового оператора.

Ответ 2

Сообщество VS 2015 с Office 365 - по какой-либо причине объект Add из COM не работает. Решение идет в GAC и находит сборки interop, копирует их в каталог temp, а затем добавляет в ваш проект, как любую DLL.

Ответ 3

Кроме того, если вы еще не знаете, Windows 8 имеет более ранние версии .NET Framework, но они по умолчанию не установлены. Перейдите в раздел "Программы" → Добавить функции в Windows ---- > , а первый флажок должен быть .NET 3.0 и, возможно, 2.0. Обратите внимание, что если вы находитесь на сервере WSUS, вам нужно сообщить Windows, чтобы захватить файлы с серверов Windows Update. Надеюсь, это поможет!

Ответ 4

Официально нет обратной совместимости PIA для Office. На самом деле это работает.

По причинам обратной совместимости я использую PIA для Office XP с нескольких лет, и он отлично работает с Office XP, 2003, 2007 и 2010 (еще не тестировался с 2013 года) и Windows XP, Vista, 7 и 8.

Для совместимости с различными версиями Windows я использую .NET framework 3.5.

В будущем... это зависит от того, что вы делаете с PIA. Если возможно, гораздо лучше напрямую обращаться с файлами Open XML или создавать надстройку для слова/excel.

Ответ 5

Я только узнал, что Visual Studio 2013 Express больше не имеет офисной поддержки. Поэтому вам нужна хотя бы про-версия, чтобы заставить ее работать.