首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

IDesign C# 編程規範(四):專案設定、建置流程與部署規範

     編輯:關於C語言

前言

本文為系列最終部分,對應 IDesign 規範第三章:專案設定與專案結構 23 條準則,涵蓋建置配置、版本管理、原始碼組織、簽名部署等工程化議題。

建置配置鐵律

#規範說明
1警告等級 4最嚴格檢查
2Release 視警告為錯誤Debug 建議同樣啟用
3禁用 #pragma warning disable不抑制特定編譯警告
13預設 unchecked,溢位風險區塊用 checked效能與正確性平衡
21Release 保留偵錯符號支援生產環境診斷

Checked 區塊範例

int CalcPower(int number, int power) {
    int result = 1;
    for (int count = 1; count <= power; count++) {
        checked { result *= number; }  // 僅乘法溢位檢查
    }
    return result;
}

執行階段與組件版本

#規範
4app.config 明確宣告 supportedRuntime
5避免自訂版本重導向與繫結
15同一邏輯應用程式統一版本號
22所有組件簽名(含用戶端 EXE)
23互操作組件用專案 SNK 簽名

app.config 範例

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v1.1.4322"/>
  </startup>
</configuration>

條件編譯與組件屬性

#規範
6避免 #define,用專案設定定義條件編譯常數
7AssemblyInfo.cs 無邏輯程式碼
8組件屬性僅放 AssemblyInfo.cs
9填寫所有組件屬性欄位(公司、描述、版權等)
17避免 #if/#endif 排除呼叫,用 ConditionalAttribute

ConditionalAttribute 範例

public class MyClass {
    [Conditional("MY_SPECIAL_CONDITION")]
    public void MyMethod() { }
}

專案結構與原始碼組織

#規範
10組件參考用相對路徑
11禁止循環參考
12避免多模組組件
16應用程式設定檔命名 App.config 並納入專案
18修改 VS 預設結構為標準佈局,統一資料夾/檔案組織
19方案層級共享資訊連結至全域共享檔案
20Tab 設為 3 空白(Tools → Options → Text Editor → C# → Tabs)

除錯與例外處理配置

#規範
14避免使用例外視窗 (Debug|Exceptions) 竄改例外處理

完整建置流程檢查清單

  1. ☐ Warning Level 4
  2. ☐ Treat Warnings as Errors (Release + Debug)
  3. ☐ 無 #pragma warning disable
  4. ☐ app.config 含 supportedRuntime
  5. ☐ 無自訂版本重導向
  6. ☐ 條件編譯常數在專案屬性定義
  7. ☐ AssemblyInfo.cs 完整且無邏輯
  8. ☐ 相對路徑組件參考
  9. ☐ 無循環參考
  10. ☐ 無多模組組件
  11. ☐ 預設 unchecked,關鍵運算 checked
  12. ☐ 不竄改例外視窗設定
  13. ☐ 統一版本號策略
  14. ☐ App.config 納入專案
  15. ☐ ConditionalAttribute 替代 #if
  16. ☐ 標準專案目錄結構
  17. ☐ 全域共享檔案連結
  18. ☐ Tab = 3 空白
  19. ☐ Release 含 PDB
  20. ☐ 所有組件強名簽名
  21. ☐ 互操作組件同 SNK 簽名

總結

這 23 條規範將「專案設定」提升為工程紀律:從編譯器嚴格度、版本治理、原始碼組織到部署簽名,構建可重現、可診斷、可演進的建置管線。關鍵在於自動化強制執行:將規範編碼為 Directory.Build.props、.editorconfig、CI 管線品質閘門,而非依賴人工審查。配合前三部分的編碼規範,形成完整的 C# 工程品質體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved