2009-09-03 1 views
5

Я хочу использовать две разные сборки Microsoft.Office.Interop (версии 11 и 12) в зависимости от версии Office, установленной на компьютере клиента.Как использовать две разные сборки Microsoft Interop в одном проекте?

Я смог добавить эти два asseblies к моему проекту (я использую их loccaly - они находятся в моей папке bin, в двух разных вложенных папках), я использовал псевдонимы на этих сборках, чтобы иметь возможность использовать оба их в моем проекте (соответственно, псевдонимы - Excel11 и Excel12).

Но unfourtunately, когда я пытаюсь построить решение я получаю предупреждение:

Нет способа разрешения конфликта между «Microsoft.Office.Interop.Excel, Version = 12.0.0.0, культура = нейтральный, PublicKeyToken = 71e9bce111e9429c "и " Microsoft.Office.Interop.Excel, Версия = 11.0.0.0, Культура = нейтраль, PublicKeyToken = 71e9bce111e9429c ". Выбор "Microsoft.Office.Interop.Excel, Версия = 12.0.0.0, Культура = нейтраль, PublicKeyToken = 71e9bce111e9429c" произвольно.

+1

Попробуйте установить тип взаимодействия Embed в True в свойствах Reference – igelineau

ответ

0

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

, чтобы быть уверенным, были на одной странице, вот что я думаю о псевдониме http://www.dotnetperls.com/extern, если по какой-то странной причине, которая не работает для вас, есть другой подход, который вы можете использовать ниже.

Для чистоты вы можете создать пару новых проектов. по одной для каждой версии, которую нужно реализовать, назовите их чем-то конкретным вариантом, например Excel11, Excel12.

Затем создайте классы-обертки для функций, которые вы хотите получить от каждого, вы можете получить фантазию и создать абстрактный класс в отдельном общем проекте, который расширяет ваши классы-оболочки, поэтому вы можете ссылаться на них в основном из своего основной код по имени абстрактного класса для единообразия. вам просто нужно добавить ссылки на новые проекты в свой основной проект и выбрать, какую оболочку вы хотите, основываясь, тем не менее, вы проверяете версию, ключи реестра или другое. Надеюсь, поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^