解決方案封裝工具可與任何原始檔控制系統一起使用。 將解決方案 .zip 檔案解壓縮到資料夾後,新增並提交檔案到原始檔控制系統。 這些檔案接著就可以在其他電腦上同步處理,檔案可在該電腦中壓縮成完全相同的新解決方案 .zip 檔案。
在原始檔控制中使用解壓縮元件檔案時,重要部分是將任何檔案新增至原始檔控制會造成不必要複製。 前往解決方案元件檔案參考,以了解為每種元件類型產生了哪些檔案,以及建議在原始檔控制中使用哪些檔案。
解決方案需要進一步自訂和變更時,開發人員應透過現有方式編輯或自訂元件、重新匯出以建立 .zip 檔案,然後將解決方案檔案解壓縮至相同的資料夾。
重要
除了何時編輯自訂檔案中所述的區段以外,不支援手動編輯解壓縮的元件檔案和 .zip 檔案。
當解決方案封裝工具解壓縮元件檔案時,不會覆寫名稱相同的現有元件檔案 (如果檔案內容完全相同的話)。 此外,該工具尊重元件檔案的唯讀屬性,並在主控台視窗中發出警告,提示特定檔案未寫入。 透過這種保護,使用者能夠從原始檔控制中檢出正在變更的最少文件集。
/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 解決方案的團隊開發都要求那些積極致力於共同解決方案的人員了解其他人的工作。 解決方案封裝工具並不能完全消除這種需求,但它能夠在原始檔控制層級輕鬆合併不衝突的變更,並主動醒目顯示發生衝突的簡潔元件。
接下來的部分是與團隊一起開發時在原始檔控制中有效使用解決方案封裝工具的通用流程。 它們在獨立環境或共用開發環境中同樣有效,但在共用環境中,匯出和提取自然包括解決方案中存在的所有變更,而不僅僅是執行匯出的開發人員所做的變更。 類似地,當匯入解決方案 .zip 檔案時,也會自然發生覆寫所有元件的行為。
建立解決方案
此過程確定了首次建立解決方案時使用的典型步驟。
在具有 Dataverse 的乾淨環境中建立解決方案,然後根據需要新增或建立元件。
當您準備好辦理登機手續時,請按照以下步驟操作。
匯出未受管理的解決方案。
使用解決方案封裝工具,將解決方案提取到元件檔案中。
從這些解壓縮的元件檔案,新增必要的檔案至原始檔控制。
將這些變更送出至原始檔控制。
修改解決方案
下列程序識別修改現有解決方案時使用的一般步驟。
同步處理或取得最新的解決方案元件檔案來源。
使用解決方案封裝程式工具,將元件檔案封裝到非受控解決方案 .zip 檔案中。
將非受控解決方案檔案匯入環境。
視需要自訂及編輯解決方案。
當您準備將變更簽入原始檔控制時,請按照下列步驟操作。
匯出未受管理的解決方案。
使用解決方案封裝工具,將匯出的解決方案提取到元件檔案中。
同步處理或從原始檔控制取得最新的原始檔。
協調衝突 (如果任何衝突存在)。
將變更送出至原始檔控制。
步驟 2 和 3 必須先執行,然後開發組織中才能進一步自訂。 在步驟 5 中,必須先完成步驟 b,再完成步驟 c。