Я разрабатываю компонент SSIS и пытаюсь создать способ сохранить единую исходную кодовую базу при создании целей как для версий 2005, так и для 2008.Разработка компонента SSIS: один источник, несколько целей
У меня проблема в две части:
- референции моего проекта для v2005 версии точка использовать различные .NET DLL, чем V2008 (то есть различные версии одного и того же библиотеки DLL).
- Класс, который я использую в v2005, будет иметь немного другое имя в v2008 (даже , хотя он имеет те же функциональные возможности и открытый интерфейс).
Проблема 1 Я могу иметь дело с, я не против иметь проект для каждой целевой версии с разными ссылками. Задача 2 не так проста. Для иллюстрации коллекция пользовательских свойств v2005 называется IDTSCustomPropertyCollection90, тогда как коллекцию v2008 называется IDTSCustomPropertyCollection100.
Если я пытаюсь использовать DLL v2005 в SSIS 2008, класс -90 не будет найден, и то же самое относится к классу -100, если я попытаюсь использовать DLL v2008 в SSIS 2005. Как я работаю с этот класс абсолютно одинаковый для обеих версий v2005 и v2008, за исключением 90/100.
Если бы я кодирования в C++, я создал файл .h, где я создать серию #defines в квадрат это далеко:
#if defined(VS2005BUILD)
#define IDTSCustomPropertyCollection IDTSCustomPropertyCollection90
#else
#define IDTSCustomPropertyCollection IDTSCustomPropertyCollection100
#endif
Но это, кажется, не возможно в C#. Идеи?
Если кому-то интересно, я закончил это с помощью # using (см. Мой другой вопрос http://stackoverflow.com/questions/3418994/interface-inheritance-and-casting) –
Спасибо, Марк! Я ждал и смотрел этот вопрос ... Сделайте следующего парня в пользу и добавьте ответ на этот вопрос в этот поток (а не комментарий) и отметьте его как ответ. –