Добавить в проект пару reference, одно название, две версии
От: Аноним  
Дата: 25.03.09 00:09
Оценка:
Хочу работать с офисной аппликухой, независимо от того, стоит ли на машине MSO 2003 или 2007.

Добавляю в проект реф на Microsoft.Office.Interop.Excel 11.0.0.0, все работает прекрасно. Насколько я понимаю, если на машине не будет 11-ой версии, new ApplicationClass() вернет null?

На случай, если на машине 11-ой версии нет, но есть 12-ая, я хочу проверять результат на null-ность, и пытаться повторно создать экземпляр ApplicationClass, но из 12-ой версии. Код, я полагаю, придется капипейстить, явно задавая пространства имен для версий.

На пути к этой цели я столкнулся с такой проблемкой: не могу добавить в проект реф на 12-ую версию, поскольку они одноименны. Что делать? Руками файлики переименовать? А как тогда быть с пространствами имен? Они ведь все равно будут совпадать, чего мне совсем не нужно? Писать две обертки не предлагать, и так пришлось отдельный проект под сервис заводить (чтобы был синглтон без геморроя с инвоуками).
Re: Добавить в проект пару reference, одно название, две вер
От: Lloyd Россия  
Дата: 25.03.09 00:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Что делать?


Не париться и написать работу с офисом на VB.NET (через позднее связывание).
Re[2]: Добавить в проект пару reference, одно название, две
От: Аноним  
Дата: 25.03.09 00:31
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


А>> Что делать?


L>Не париться и написать работу с офисом на VB.NET (через позднее связывание).


Отдельный проект заводить... Да и переписывать неохота.

Нет ли более других вариантов?
Re[3]: Добавить в проект пару reference, одно название, две
От: Lloyd Россия  
Дата: 25.03.09 00:33
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>Не париться и написать работу с офисом на VB.NET (через позднее связывание).


А>Отдельный проект заводить... Да и переписывать неохота.


Зато interop-ные сборки выкинешь.

А>Нет ли более других вариантов?


Можно писать под меньшую версию.
Re[4]: Добавить в проект пару reference, одно название, две
От: Аноним  
Дата: 25.03.09 00:37
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Зато interop-ные сборки выкинешь.


Они ставятся с офисом. Я их в дистрибутив не включал, а все работает на одной из таргетных машин.

А>>Нет ли более других вариантов?


L>Можно писать под меньшую версию.


И все? И бОльшая, если есть, поднимется автоматом? То есть, она и за себя, и за меньшую, может проканать?
Re: Добавить в проект пару reference, одно название, две вер
От: Pavel_Agurov Россия  
Дата: 25.03.09 07:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Хочу работать с офисной аппликухой, независимо от того, стоит ли на машине MSO 2003 или 2007.


А>Добавляю в проект реф на Microsoft.Office.Interop.Excel 11.0.0.0, все работает прекрасно. Насколько я понимаю, если на машине не будет 11-ой версии, new ApplicationClass() вернет null?


Используйте официальные PIA. Во-первых, по лицензионному соглашению, вы не имеете права создавать свои Interop и распрастранять их. Во-вторых, будет работать со всеми версиями офиса (ну разьве что 98я не сработает).
Re[2]: Добавить в проект пару reference, одно название, две
От: Аноним  
Дата: 25.03.09 07:48
Оценка:
Здравствуйте, Pavel_Agurov, Вы писали:

P_A>Здравствуйте, Аноним, Вы писали:


А>>Хочу работать с офисной аппликухой, независимо от того, стоит ли на машине MSO 2003 или 2007.


А>>Добавляю в проект реф на Microsoft.Office.Interop.Excel 11.0.0.0, все работает прекрасно. Насколько я понимаю, если на машине не будет 11-ой версии, new ApplicationClass() вернет null?


P_A>Используйте официальные PIA. Во-первых, по лицензионному соглашению, вы не имеете права создавать свои Interop и распрастранять их. Во-вторых, будет работать со всеми версиями офиса (ну разьве что 98я не сработает).


Да я и не собирался распространять. Разве они не идут в комплекте с офисом? Что-то там такое, типа "поддержки дотнетных расширений" в инсталлере. Во всяком случае, я в дистрибутив их не включал, скопировал на другую машину, где уже стоял офис, а также SQL Server, MOSS и все заработало. Окружение всегда таким и будет, и кто из них привнес эти дллки, мне все равно, главное, что они на всех целевых машинах будут.

Что касается PIA, то я посмотрю, а вот насчет поддержки разных версий офиса я не понял. Надо качать и редистить PIA от самой первой версии (допустим, XP, на которую вы дали ссылку наверное неспроста)? Или сразу все PIA?
Re[3]: Добавить в проект пару reference, одно название, две
От: Аноним  
Дата: 25.03.09 07:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>...я в дистрибутив их не включал, скопировал ЕГО на другую машину...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.