C 通過條件編譯來控制不同版本

2021-10-13 02:06:30 字數 887 閱讀 9093

最近公司開發的專案,分開的版本太多,但是又不是聯網版本,也就沒有登入,不能通過使用者登入來控制相關功能。

比如a局有個改動要求,b局有個改動要求,但是,又是同時修改的乙個m檔案,原來的做法是,把m檔案複製一下,分別給a局和b局修改,但是這種方法有個很大的問題,就是修改公共的部分**,就需要double一下或者更多。

今天,嘗試使用條件編譯方式來進行區分。

方法如下:

新建乙個專案,複製個多個解決方案sln檔案和工程csproj檔案。

分別進行一一對應解決方案和工程,這個我就不截圖了,大家都懂。

然後右鍵工程檔案,選擇【生成】,修改 條件編譯和符號 裡面的內容,這個根據自己的需要,我分別設定了t1、t2、t3用來區分三個版本

編寫相應的**,使用#if或者conditional,這兩個的區別很簡單,就是#if是不進行編譯,而conditional是編譯了,但是如果不是對應的版本,則不生效。具體的可以參看水哥的部落格

如圖,我是執行的t2的解決方案,所以,對應是輸出了t2的內容

注意:但是需要注意的是,這種vb.net教程方式只適合cs來控制**或者頁面,單純的xaml不支援條件編譯,所以,如果c#教程頁面變動太大的,就不合適了

出處:

mobile專案 版本控制 編譯條件

windows mobile 專案開發中,往往涉及到乙個專案多個版本的問題,即如果有個專案叫做 點菜寶,即一種點菜的終端裝置。有很多餐廳使用。在開發出來的乙個標準模板上,每個餐廳會有不同的小需求,這些改動相比標準來說變更很少,這樣不值得開發乙個新的專案。所以在標準上新增 編譯條件 這樣在執行時加上此...

C 條件編譯來判斷所處環境

c語言中條件編譯 如 define undef 定義巨集 取消巨集 ifdef ifndef if elif else endif defined if 可以用來判斷條件 defined 與 if elif聯合判斷 ifdef 判斷所處環境 作業系統判定 if defined win32 defin...

c 中預處理指令來實現條件編譯

c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1.定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...