2010-07-15 20 views
2

我正在開發一個SSIS組件,並試圖在爲2005和2008版本構建目標的同時維護一個源代碼庫。開發SSIS組件:一個源代碼,幾個目標

我有兩個部分問題:

  • 的V2005版本點使用不同的.NET 我的項目的引用的DLL的比V2008(即,不同版本的相同的DLL)。
  • 我在v2005中使用的類將在v2008中具有稍微不同的名稱(即使 具有相同的功能和公共接口)。

問題1我可以處理,我不介意爲每個目標版本提供不同參考的項目。問題2並不容易。爲了說明,v2005定製屬性集合稱爲IDTSCustomPropertyCollection90,而v2008集合稱爲IDTSCustomPropertyCollection100。

如果我嘗試在SSIS 2008中使用v2005 DLL,則不會找到-90類,如果我在SSIS 2005中嘗試使用v2008 DLL,則-100類也是如此。這個類與我的v2005和v2008版本完全相同,只有90/100。

如果我在C++編碼,我會成立了,我會制定了一系列#define語句的方這一走.h文件:

#if defined(VS2005BUILD) 
    #define IDTSCustomPropertyCollection IDTSCustomPropertyCollection90 
#else 
    #define IDTSCustomPropertyCollection IDTSCustomPropertyCollection100 
#endif 

但這似乎沒有不在C#中是可能的。想法?

+1

如果有人想知道,我最終這樣做了#使用的(看我的其他問題http://stackoverflow.com/questions/3418994/interface-inheritance-and-casting) – 2010-08-06 14:02:20

+0

謝謝,馬克!我正在等待並觀看這個問題... 做下一個人的忙,併爲此線程添加一個答案(不是評論),並將其標記爲答案。 – 2010-08-22 05:22:31

回答

1

你可以嘗試在這些代碼和你的代碼之間使用另一個接口,然後從配置或其他東西中加載適當的接口。

+0

我認爲編寫包裝類對(有幾個這個問題),然後使用適合該構建的集合。但是這個問題有很多類,我希望有一個更簡單的解決方案。 – 2010-07-19 15:35:34

相關問題