Microsoft Office Interop в смешанной среде Office 2003/2007/2010 - PullRequest
1 голос
/ 05 октября 2011

В ситуации, когда большинство пользователей используют последнюю версию MS Office, а некоторые используют более старую, Office 2003/2007, из-за ограничений компьютера, есть способ правильно использовать библиотеки Office Interop ( а не сторонние сборки) чтобы разрешить развертывание приложения без установки более старой версии Office на компьютеры 2010 года?

Ответы [ 3 ]

1 голос
/ 22 февраля 2013

Ну, не знаю, будет ли кто-нибудь еще смотреть на это, но все идет отлично!

Я сделал именно это, запрограммировал на машине с Excel 2010 (только) и выполнил perfeclty на другой машине с Excel 2003 (только). (Программируется с использованием Visual Studio 2010)

Нажмите «Добавить ссылку» в обозревателе решений и перейдите в раздел «.NET». Там будет много Assmeblies, включая "Microsoft.Office.Interop.TheProgramYouWant". Секрет в том, чтобы выбрать более старую версию (12.0.0.0), а не более новую (14.0.0.0).

Он будет поставляться с опциями «копировать локально» и «конкретная версия», установленными в значение «истина» (я не менял это, но не знаю, точно ли что-то изменится).

1 голос
/ 02 ноября 2011

У нас тот же случай, я только что использовал позднюю привязку .CreateObject("Excel.Application"), вещь с поздней привязкой заключается в том, что у вас не будет никакого intellisense, поэтому для меня лучше всего сначала написать код в классе с Office.Interop.Excel ссылается, после этого скопировать все коды в другой класс, который использует позднюю привязку.

0 голосов
/ 21 января 2014

Используйте позднюю привязку, потому что тогда вам не нужно ссылаться на какие-либо Office dll в проекте. Пример для позднего связывания Outlook:

Dim OutlApp As Object
Dim NewEmail As Object

OutlApp = CreateObject("Outlook.Application")
NewEmail = OutlApp.CreateItem(0)
...