最近公司開發的項目,分開的版本太多,但是又不是聯網版本,也就沒有登錄,不能通過用戶登錄來控制相關功能。 比如A局有個改動要求,B局有個改動要求,但是,又是同時修改的一個M文件,原來的做法是,把M文件複製一下,分別給A局和B局修改,但是這種方法有個很大的問題,就是修改公共的部分代碼,就需要Double ...
最近公司開發的項目,分開的版本太多,但是又不是聯網版本,也就沒有登錄,不能通過用戶登錄來控制相關功能。
比如A局有個改動要求,B局有個改動要求,但是,又是同時修改的一個M文件,原來的做法是,把M文件複製一下,分別給A局和B局修改,但是這種方法有個很大的問題,就是修改公共的部分代碼,就需要Double一下或者更多。
今天,嘗試使用條件編譯方式來進行區分。
方法如下:
新建一個項目,複製個多個解決方案sln文件和工程csproj文件。
分別進行一一對應解決方案和工程,這個我就不截圖了,大家都懂。
然後右鍵工程文件,選擇【生成】,修改 條件編譯和符號 裡面的內容,這個根據自己的需要,我分別設置了T1、T2、T3用來區分三個版本
編寫相應的代碼,使用#if或者Conditional,這兩個的區別很簡單,就是#if是不進行編譯,而Conditional是編譯了,但是如果不是對應的版本,則不生效。具體的可以參看水哥的博客
如圖,我是運行的T2的解決方案,所以,對應是輸出了T2的內容
註意:但是需要註意的是,這種方式只適合CS來控制代碼或者頁面,單純的XAML不支持條件編譯,所以,如果頁面變動太大的,就不合適了