註冊和部署外掛程式
發行︰ 2016年11月
適用於: Dynamics CRM 2015
外掛程式及自訂工作流程活動是開發擴充 Microsoft Dynamics 365 現有功能的自訂程式碼。 在使用外掛程式或自訂工作流程活動之前,必須在伺服器上註冊。 使用某些 SDK 類別撰寫註冊程式碼,可透過程式設計,在 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 伺服器上註冊外掛程式及自訂工作流程活動。 不過,為了使學習曲線平穩以及加速自訂程式碼開發和部署,外掛程式及自訂工作流程活動註冊工具已包含在 SDK 的 Bin 資料夾中。下載 Microsoft Dynamics CRM SDK 套件。
雖然本主題著重外掛程式,但是大部分的資訊也適用於自訂工作流程活動。 兩者之間的唯一差異在於對於自訂工作流程活動組件,您只註冊組件。 對於外掛程式,您註冊外掛程式組件及每外掛程式的一個或多個步驟。 如需自訂工作流程活動的詳細資訊,請參閱 自訂工作流程活動 (工作流程組件)。
安全性 注意 |
---|
除非從可靠和信任的來源取得,否則請勿註冊任何外掛程式或自訂工作流程活動。 |
如需如何封裝外掛程式為解決方案元件的詳細資訊,請參閱 使用解決方案,封裝與發佈擴充功能。
本主題內容
外掛程式註冊工具
外掛程式儲存
部署
組件版本管理功能和解決方案
安全性限制
以程式設計方式註冊外掛程式
啟用或停用自訂程式碼執行
外掛程式註冊工具
Plug-in Registration 可以提供圖形使用者介面,和支援在 Microsoft Dynamics 365 上註冊外掛程式與自訂工作流程活動。 不過,外掛程式及自訂工作流程活動只可以在 Microsoft Dynamics CRM Online 沙箱 (隔離模式) 中註冊。
如需更多關於如何使用工具來註冊和部署外掛程式的詳細資訊,請參閱 逐步解說:利用外掛程式註冊工具來註冊外掛程式。 此工具可以增加至 Visual Studio [工具] 功能表做為加速開發程序的外部工具。
外掛程式儲存
對於內部部署,未在沙箱中註冊的外掛程式可以儲存在 Microsoft Dynamics 365 伺服器資料庫或在磁碟上檔案系統。 強烈建議您在 Microsoft Dynamics 365 資料庫儲存生產準備就緒的外掛程式,而不是在磁碟上。 在資料庫中儲存的外掛程式會自動分散在資料中心叢集的多部 Microsoft Dynamics 365 伺服器。 外掛程式的磁碟上儲存對於使用 Microsoft Visual Studio 偵錯外掛程式十分有用。 不過,您可以偵錯儲存在資料庫的外掛程式。 如需詳細資訊,請參閱偵錯外掛程式。
在沙箱中註冊的外掛程式必須儲存在資料庫,不論 Microsoft Dynamics 365 部署 (內部部署、IFD 或 Online)。
部署
對於內部部署或網際網路對向部署 (IFD) Microsoft Dynamics 365 安裝,將外掛程式從其他電腦部署至 Microsoft Dynamics 365 伺服器磁碟 (磁碟上部署) 時,外掛程式組件必須在註冊前手動複製至伺服器。 組件必須部署在執行外掛程式的每台伺服器上的 <installdir>\Program Files\Microsoft CRM\server\bin\assembly 資料夾中。
在組件複製至伺服器上的 …\bin\assembly 資料夾之後,外掛程式註冊應該完成,避免系統使用者在 Microsoft Dynamics 365 造成事件引發,但伺服器上不存在已註冊外掛程式組件的狀況。 對於伺服器資料庫部署,外掛程式註冊時自動複製外掛程式組件,因此這個舊版問題不是問題。
根據您的外掛程式的設計,您的外掛程式可能需要其他參照的組件執行。 不論您的外掛程式是部署至資料庫或磁碟上,如果您的外掛程式需要其他組件執行,則必須在執行外掛程式的每台伺服器上的全域組件快取中放置這些組件複本。 這不會套用至 Microsoft Dynamics CRM Online 伺服器,因為您無法存取該伺服器上的全域組件快取。
若要從開發環境將外掛程式移至預備或生產伺服器
在開發電腦上,建立外掛程式碼。 請勿包含偵錯資訊。 將外掛程式的效能最佳化。
在 Microsoft Dynamics 365 伺服器資料庫中註冊外掛程式。
使用 Microsoft Dynamics 365 Web 應用程式,建立解決方案或使用現有的解決方案,並將外掛程式加入至該解決方案。
在所要元件新增至解決方案之後,匯出解決方案。
將解決方案匯入預備或生產伺服器。
組件版本管理功能和解決方案
外掛程式組件可以使用數字格式 major.minor.build.revision 進行版本管理,定義於 Microsoft Visual Studio 專案的 Assembly.info 檔案。 視較新的解決方案中哪個組件版本號碼部分已變更,在透過匯入更新現有的解決方案時適用下列行為。
組建或修訂組件版本號碼已變更。
這視為就地升級。 在匯入包含更新組件的解決方案時,移除組件的舊版本。 舊解決方案的所有預先存在的步驟自動變更成參照組件的新版本。
除了組建或修訂號碼,主要或次要組件版本號碼已變更。
在匯入包含已修訂組件的更新解決方案時,組件視為與現有的解決方案中舊版組件完全不同。 在現有的解決方案中的外掛程式註冊步驟將持續參照組件的舊版本。 如果想要舊版組件的現有外掛程式註冊步驟指向修訂的組件,則需要使用外掛程式註冊工具手動變更步驟設定以參照修訂的組件類型。 應該先這麼做,然後再將更新組件匯出至解決方案以供稍後匯入。
如需解決方案的詳細資訊,請參閱解決方案簡介。
安全性限制
有已授權的使用者註冊外掛程式的安全性限制。 如果外掛程式不是在隔離模式下註冊,註冊外掛程式的系統使用者帳戶必須在部署管理員的部署系統管理員群組中。 系統管理員使用者帳戶或在部署系統管理員群組中包含的所有使用者帳戶才能執行部署管理員。
重要
針對非隔離的外掛程式,若註冊的使用者帳戶未包含在部署系統管理員群組中,在外掛程式註冊時會造成例外狀況擲回。 例外狀況說明指出「權限不足,無法完成 SDK 實體的建立作業」。
註冊外掛程式的系統使用者帳戶必須具備下列全組織的安全性權限:
prvCreatePluginAssembly
prvCreatePluginType
prvCreateSdkMessageProcessingStep
prvCreateSdkMessageProcessingStepImage
prvCreateSdkMessageProcessingStepSecureConfig
如需詳細資訊,請參閱 Security role and privilege reference和 Microsoft Dynamics CRM 2015 的安全性模型。
在沙箱中註冊的外掛程式 (隔離模式),註冊外掛程式的系統使用者帳戶必須具備系統管理員角色。 不需要部署系統管理員群組成員資格。
以程式設計方式註冊外掛程式
用來註冊外掛程式及影像的主要實體類型為:PluginAssembly、PluginType、SdkMessageProcessingStep 和 SdkMessageProcessingStepImage。 用來註冊自訂工作流程活動的主要實體類型為 PluginAssembly 和 PluginType。 使用這些實體與建立、更新、擷取和刪除作業。
如需有關影像的詳細資訊,請參閱了解傳遞至外掛程式的資料內容。
啟用或停用自訂程式碼執行
如此處的描述,您可以使用 Windows PowerShell 在伺服器上啟用或停用自訂程式碼,包括外掛程式和自訂工作流程活動。 或者,也可以使用部署 Web 服務。 如需更多資訊,請參閱 部署實體和部署組態設定 以設定 CustomCodeSettings.AllowExternalCode 屬性。
若要啟用自訂程式碼執行
開啟 Windows PowerShell 命令視窗。
新增 Microsoft Dynamics 365 PowerShell 嵌入式管理單元:
Add-PSSnapin Microsoft.Crm.PowerShell
擷取目前設定:
$setting = get-crmsetting customcodesettings
修改目前設定:
$setting.AllowExternalCode="True"
set-crmsetting $setting
確認設定:
get-crmsetting customcodesettings
若要停用自訂程式碼執行
開啟 Windows PowerShell 命令視窗。
新增 Microsoft Dynamics 365 PowerShell 嵌入式管理單元:
Add-PSSnapin Microsoft.Crm.PowerShell
擷取目前設定:
$setting = get-crmsetting customcodesettings
修改目前設定:
$setting.AllowExternalCode=0
set-crmsetting $setting
確認設定:
get-crmsetting customcodesettings
另請參閱
外掛程式開發
偵錯外掛程式
外掛程式隔離、信任和統計資料
使用解決方案,封裝與發佈擴充功能
PluginAssembly entity privileges
PluginType entity privileges
SdkMessageProcessingStep entity privileges
SdkMessageProcessingStepImage entity privileges
SdkMessageProcessingStepSecureConfig entity privileges
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權