我需要在我的應用程序中創建一些核心庫,這些庫將在.NET 3.5和.NET 4.0中提供。我很高興創建多個項目,創建所需的定義,並使用#ifdef
來控制哪些代碼將其轉換爲哪個輸出組件。讓項目在多個.NET版本中保持同步
但是,我想知道的是,如果有一種方法來保持這些項目同步?當我在XNA下開發時,我有一個Windows版本和一個Windows Phone版本 - 並且XNA將一個屬性注入名爲XnaCrossPlatformGroupID
的項目文件。它的作用是使Visual Studio自動確保在將文件添加到項目中時將其添加到相應的項目中。所以,例如,如果我將一個名爲Foo.cs
的文件添加到我的項目的Windows副本中,則會將該文件添加到項目的Windows Phone副本中。
是否有任何方式複製Visual Studio中的一組正常項目的這種行爲?我不希望使用構建配置,因爲我希望能夠在一個步驟中編譯所有目標平臺,而無需藉助IDE之外的工具(比如TeamCity)。還是有另一種方法可以讓一個項目針對多個目標而構建,而無需使用20種不同的構建配置來解決該解決方案?
遞歸包含的東西很酷 - 但我看到的一個缺陷是,即使某些文件丟失了,您也無法在解決方案資源管理器中看到它(這使事情變得更容易)。 我也嘗試過可移植類庫 - 但它太嚴格了,並且在某些文件跨平臺更改時無濟於事。我也必須在Android和iOS上編譯我的代碼(使用MonoDroid和MonoTouch)。 – Ani 2012-07-23 20:43:34
@ananthonline我一直在protobuf-net上使用遞歸事物4年;從來沒有導致問題:) – 2012-07-23 20:56:56
我* *愛*。我曾閱讀過有關可移植類庫的信息 - 但可以使用它們來定位多個.NET Framework版本嗎?我必須承認我有點跛腳,並沒有嘗試過,因爲它看起來像是針對跨平臺而不是Framework版本的可移植性...... – 2012-07-23 20:57:22