Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

launch.json 是 Dynamics 365 Business Central AL 專案 的啟動設定檔(VS Code 用來偵錯、部署擴充套件時使用)。以下的參數實例,將逐項說明與實務用途。
{
"version": "0.2.0",
"configurations": [
{
"name": "Microsoft cloud sandbox",
"request": "launch",
"type": "al",
"environmentType": "Sandbox",
"environmentName": "SBDEV",
"startupObjectId": 60100,
"startupObjectType": "Page",
"breakOnError": "All",
"launchBrowser": true,
"enableLongRunningSqlStatements": true,
"enableSqlInformationDebugger": true,
"tenant": "Your Tenant",
"schemaUpdateMode": "ForceSync" // Crucial for field removal
},
]
}configurations 陣列這是所有啟動設定(launch profiles)的集合。每一個 { ... } 代表一個可選的部署環境(例如 Sandbox、Production)。
| 設定項目 | 說明 |
|---|---|
name | 顯示在 VS Code 偵錯面板中的名稱。這裡是 "Microsoft cloud sandbox",代表部署到雲端 Sandbox 環境。 |
request | 固定為 "launch",代表要啟動 Business Central 並部署此 AL 專案。 |
type | 固定為 "al",表示這是 Business Central 的 AL 專案設定。 |
environmentType | 指定環境類型:可為 "Sandbox" 或 "Production"。Sandbox 通常用於測試與開發。 |
environmentName | 指定 Business Central 環境名稱(例如 "SBDEV")。這個名稱需與你在 Business Central Admin Center 中的環境名稱一致。 |
startupObjectId | 專案啟動後自動打開的物件 ID(例如 60100)。 |
startupObjectType | 啟動的物件類型(例如 "Page"、"Report"、"Codeunit")。常用 "Page" 方便直接開啟 UI 頁面。 |
breakOnError | 定義是否在錯誤時中斷偵錯: 可選值: None、All、ExcludeTry。設定 "All" 表示任何錯誤都會觸發中斷點。 |
launchBrowser | 若為 true,部署後會自動開啟瀏覽器並導向指定頁面(例如 startupObjectId 所對應的 Page)。 |
enableLongRunningSqlStatements | 若為 true,偵錯期間會顯示長時間執行的 SQL 查詢(效能分析用途)。 |
enableSqlInformationDebugger | 若為 true,允許在偵錯時查看 SQL 查詢資訊(可用於分析效能瓶頸)。 |
tenant | 指定要部署的 Tenant ID(多租戶環境下必填)。例如 "default" 或 "Your tenant"。 |
schemaUpdateMode | 指定如何更新資料表結構: • "Synchronize" – 嘗試保留資料(安全同步)• "Recreate" – 刪除並重建資料表(資料會遺失)• "ForceSync" – 強制更新 schema,必要時移除欄位。 |
👉 本例中的 "ForceSync" 特別重要,當在 AL 中刪除欄位或變更型別時,需要此模式才能讓 Business Central 強制同步資料結構。
ForceSync 的風險你可以在同一個 launch.json 中定義多組設定,例如:
"configurations": [
{ "name": "Local Sandbox", ... },
{ "name": "Cloud Sandbox", ... },
{ "name": "Production", ... }
]startupObjectId 的技巧開發不同模組時可臨時修改此設定,讓偵錯時直接打開該模組頁面。
可以在同一個 launch.json 中維持兩組設定:
{
"version": "0.2.0",
"configurations": [
{
"name": "Cloud Sandbox (Development)",
"type": "al",
"request": "launch",
"environmentType": "Sandbox",
"environmentName": "SBDEV",
"tenant": "default",
"startupObjectId": 60100,
"startupObjectType": "Page",
"launchBrowser": true,
"breakOnError": "All",
"enableLongRunningSqlStatements": true,
"enableSqlInformationDebugger": true,
"tenant": "Your Tenant",
"schemaUpdateMode": "ForceSync" // 僅開發時使用
},
{
"name": "Cloud Production (Safe)",
"type": "al",
"request": "launch",
"environmentType": "Production", // 安全部署環境
"environmentName": "PROD",
"tenant": "default", // 或指定租戶 ID,例如 "yourcompany.onmicrosoft.com"
// 啟動行為
"startupObjectId": 22, // Customer List (可改成你的自定頁面 ID)
"startupObjectType": "Page",
"launchBrowser": true,
// 偵錯設定
"breakOnError": "None", // Production 不中斷
"enableLongRunningSqlStatements": false, // 關閉效能監控
"enableSqlInformationDebugger": false, // 關閉 SQL 偵錯
// 同步資料庫設定
"schemaUpdateMode": "Synchronize" // 保留資料結構,安全同步
}
]
}各設定安全性說明
| 項目 | 建議值 | 原因 |
|---|---|---|
environmentType | "Production" | 確保連線到正式環境,不允許強制同步。 |
breakOnError | "None" | 避免生產環境中因錯誤而中斷。 |
schemaUpdateMode | "Synchronize" | 僅進行安全的 schema 同步,保留現有資料。 |
enableSqlInformationDebugger | false | 避免額外 SQL 日誌導致效能影響。 |
enableLongRunningSqlStatements | false | 關閉 SQL 效能監控,避免影響生產效能。 |