.NET: Если мой .NET автоматизирует Office, нужно ли заказчику устанавливать Office? - PullRequest
2 голосов
/ 31 декабря 2008

Если я создаю программу, которая в одной небольшой области, использующей автоматизацию Excel:

произойдет ли сбой приложения при необходимости в Excel

или приложение не запустится?


Обновление

Позвольте мне задать тот же вопрос, но более подробно:

Будет ли приложение доступно для использования

  • 99,9% пользователей, которые никогда не используют функцию, требующую Excel

  • 0% пользователей, поскольку Excel не установлен.

Позвольте мне задать тот же вопрос по-другому:

Будет ли приложение не инициализироваться, ссылаясь на DLL COM-взаимодействия?


Позвольте мне задать тот же вопрос по-другому:

Не запустится ли приложение, которое не использует Excel, но ссылается на DLL взаимодействия COM-взаимодействия?


Позвольте мне задать тот же вопрос по-другому:

Будет ли использоваться приложение, которое не использует Excel, если Excel не установлен, если это приложение зависит от библиотек Office Primary Interop?


Позвольте мне задать тот же вопрос по-другому:

Если мое приложение не использует Excel, должен ли пользователь устанавливать Excel?

Ответы [ 5 ]

4 голосов
/ 31 декабря 2008

У меня есть приложение, использующее автоматизацию Excel, и я могу с уверенностью сказать, что оно не будет работать во время выполнения, а не во время загрузки. Фактически мы проверяем, установлен ли он вообще, и показываем кнопку «Показать данные в Excel» только в том случае, если мы ее находим (но PIA развертываются для всех установок).

4 голосов
/ 31 декабря 2008

Код будет правильно выполняться до тех пор, пока он не попытается вызвать библиотеки автоматизации, тогда он сгенерирует исключение.

3 голосов
/ 31 декабря 2008

Если вы автоматизируете Office ... у вас должен быть Office!

Сказав это, ответ изменится, если вы превратите вопрос в: Можно ли создать электронную таблицу Excel, не имея Excel на клиенте?

Для этого существует множество сторонних элементов управления; Вы можете написать напрямую в XML-спецификацию MS SpreadML (http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx; или использовать сторонние библиотеки, которые делают (например, http://www.carlosag.net/Tools/ExcelXmlWriter/).

3 голосов
/ 31 декабря 2008

Я думаю, что это не удастся во время выполнения, потому что сборки взаимодействия должны иметь возможность загружаться без COM-компонентов, доступных в клиентской системе.

ОБНОВЛЕНИЕ: время выполнения должно означать, когда вам это нужно!

1 голос
/ 31 декабря 2008

При использовании COM в Win32 произойдет сбой при необходимости.

...