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

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

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

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

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

5 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам