原始檔控制與解決方案檔案
SolutionPackager 工具可與任何原始檔控制系統搭配使用。 將解決方案 .zip 檔案解壓縮至資料夾之後,只需將檔案新增並送出至原始檔控制系統即可。 這些檔案接著就可以在其他電腦上同步處理,檔案可在該電腦中壓縮成完全相同的新解決方案 .zip 檔案。
在原始檔控制中使用解壓縮元件檔案時,重要部分是將任何檔案新增至原始檔控制會造成不必要複製。 請參閱解決方案元件檔案參考,了解每個元件類型會產生哪些檔案,以及建議在原始檔控制中使用哪些檔案。
解決方案需要進一步自訂和變更時,開發人員應透過現有方式編輯或自訂元件、重新匯出以建立 .zip 檔案,然後將解決方案檔案解壓縮至相同的資料夾。
重要
除了何時編輯自訂檔案中所述的區段以外,不支援手動編輯解壓縮的元件檔案和 .zip 檔案。
SolutionPackager 工具解壓縮元件檔案時,不會覆寫名稱相同的現有元件檔案 (如果檔案內容完全相同的話)。 此外,工具允許元件檔案的唯讀屬性,而在主控台視窗上產生特定檔案未寫入的警告。 這可讓使用者從原始檔控制簽出最小一組要變更的檔案。 /clobber
參數用來覆寫和造成唯讀檔案寫入或刪除。 /allowWrite
參數可用來評估解壓縮作業有哪些影響,實際上不會造成檔案寫入或刪除。 /allowWrite
參數與詳細資訊記錄的使用是有效的。
從原始檔控制簽出的最小一組檔案完成解壓縮作業之後,開發人員可將已變更檔案送回原始檔控制,如同任何其他類型的原始程式檔。
團隊開發
當多個開發人員正在使用相同的解決方案元件時,若兩個開發人員的變更造成單一檔案的變更,衝突可能會發生。 藉由分解每個可編輯元件或子元件至不同的檔案,此發生次數已降至最低。 請參考下列範例。
開發人員 A 和 B 正在處理同一個解決方案。
在獨立電腦上,他們都會從原始檔控制取得解決方案的最新原始檔、進行壓縮,然後將未受管理的解決方案 .zip 檔案匯入至獨立 Microsoft Dataverse 組織。
開發人員 A 自訂「現行連絡人」系統檢視表與連絡人實體的主要表單。
開發人員 B 自訂客戶實體的主要表單,以及變更「連絡人查詢檢視表」。
這兩個開發人員都會匯出未受管理的解決方案 .zip 檔案並解壓縮。
開發人員 A 需要簽出連絡人主要表單的一個檔案和「現行連絡人」檢視表的一個檔案。
開發人員 B 需要簽出客戶主要表單的一個檔案和「連絡人查詢檢視表」檢視表的一個檔案。
這兩位開發人員可以依任何順序送出,因為他們個別的變更改變不同的檔案。
在兩個送出完成後,他們可重複步驟 #2,然後繼續在其獨立組織進一步變更。 他們每個人都有兩組變更,沒有覆寫自己的工作。
只有變更不同的檔案時,前一個範例才能運作。 獨立自訂不可避免的需要在單一檔案中變更。 根據以上顯示之範例,請考慮開發人員 B 自訂「現行連絡人」檢視表,同時開發人員 A 也要自訂它。 在此新範例中,事件順序變成重要。 協調此困境的正確程序,完整寫出如下。
開發人員 A 和 B 正在處理同一個解決方案。
在獨立電腦上,他們都會從原始檔控制取得解決方案的最新原始檔、進行壓縮,然後將未受管理的解決方案 .zip 檔案匯入至獨立組織。
開發人員 A 自訂「現行連絡人」系統檢視表與連絡人實體的主要表單。
開發人員 B 自訂客戶實體的主要表單,以及變更「現行連絡人」。
雙方開發人員都會匯出未受管理的解決方案。 zip 檔案並解壓縮。
開發人員 A 需要簽出連絡人主要表單的一個檔案和「現行連絡人」檢視表的一個檔案。
開發人員 B 需要簽出客戶主要表單的一個檔案和「現行連絡人」檢視表的一個檔案。
開發人員 A 先準備就緒。
在開發人員 A 送出至原始檔控制之前,他們必須取得最新的原始檔,以確保先前的簽入未與其變更衝突。
沒有衝突,因此開發人員 A 可以送出。
開發人員 B 在開發人員 A 之後準備就緒。
開發人員 B 送出之前,他們必須取得最新的原始檔,確保之前的簽入未與其變更衝突。
發生衝突,因為自從開發人員 B 上次擷取最新的原始檔後「使用中連絡人」的檔案已修改。
開發人員 B 必須協調衝突。 原始檔控制系統的使用中功能可能有助此程序,否則下列選擇都是可行的。
開發人員 B,透過原始檔控制歷程記錄 (如果有),可以查看開發人員 A 進行之前的變更。 透過直接通訊,他們可討論每個變更。 然後開發人員 B 只需要以同意的解決方案來更新組織。 開發人員 B 接著匯出,擷取,並覆寫衝突檔案並送出。
讓原始檔控制覆寫本機檔案。 開發人員 B 壓縮解決方案並將它匯入至組織中,然後評估檢視表狀態,視需要重新自訂。 接著,開發人員 B 可以匯出、解壓縮及覆寫衝突的檔案。
如果之前的變更可以視為不必要,開發人員 B 可讓檔案複本覆寫原始檔控制中的版本和送出。
不論在共用組織或獨立組織中工作,Dataverse 解決方案的團隊開發要求積極處理共同解決方案的使用者知道其他人的工作。 SolutionPackager 工具不完全移除此需求,但是在原始檔控制等級啟用非衝突變更的輕易合併,並且主動醒目提示發生衝突的簡單元件。
下節是團隊開發時在原始檔控制中有效使用 SolutionPackager 工具的一般程序。 這些同等適用於獨立組織或共用開發組織,但在共用組織中,匯出和解壓縮會自然包括目前在解決方案中的所有變更,而不只是執行匯出的單位開發人員完成的變更。 同樣地,在匯入解決方案 .zip 檔案時,覆寫所有元件的自然行為會發生。
建立解決方案
下列程序識別首先建立解決方案時使用的一般步驟。
在乾淨的組織,在 Dataverse 伺服器上建立解決方案,然後視需要新增或建立元件。
準備簽入時,請執行下列步驟。
匯出未受管理的解決方案。
使用 SolutionPackager 工具,將解決方案解壓縮為元件檔案。
從這些解壓縮的元件檔案,新增必要的檔案至原始檔控制。
將這些變更送出至原始檔控制。
修改解決方案
下列程序識別修改現有解決方案時使用的一般步驟。
同步處理或取得最新的解決方案元件檔案來源。
使用 SolutionPackager 工具,將元件檔案壓縮成未受管理的解決方案 .zip 檔案。
將未受管理的解決方案檔案匯入至組織。
視需要自訂及編輯解決方案。
準備將變更簽入至原始檔控制時,請執行下列步驟。
匯出未受管理的解決方案。
使用 SolutionPackager 工具,將匯出的解決方案解壓縮為元件檔案。
同步處理或從原始檔控制取得最新的原始檔。
協調衝突 (如果任何衝突存在)。
將變更送出至原始檔控制。
步驟 2 和 3 必須先執行,然後開發組織中才能進一步自訂。 在步驟 5 中,必須先完成步驟 b,再完成步驟 c。