Dynamics 365-關於Solution的那些事(二)

   接着上一篇的說,如今有一個已知前提:Solution的增量特性。而後咱們再思考這麼一個場景,項目開發過程當中,存在屢次迭代的狀況,每次迭代可能涉及到的solution是同一個,惟一區別的,就是solution裏的component有一些修改或增長。隨着迭代的進行,solution裏的components會愈來愈多,而每次solution導入的components全是此次迭代的內容麼?若是以前的components又覆蓋了一遍,如何確保不影響生產環境已有的業務呢?咱們很天然地就會想,可不能夠修改solution,讓它保持只含有迭代涉及的定製信息,以及Solution的描述信息,剩下的都不要。而這篇的內容就是爲了解決這個問題的。spa

  components的修改涉及到兩種:一種是整個component的增長和刪除,而另外一種則是對component進行內容上的增長和刪除。3d

  1. 整個component的增長和刪除component

  這個簡單點的操做,就是在CRM上直接進行增刪。orm

  

  點擊Remove或者Add Existing,來對solution裏的component進行操做,注意刪除是說把component從當前的solution移除出去,而不是在環境裏把它刪除掉,因此必定不要誤點了Delete。xml

  這裏爲了接下來的內容,咱們不採用這種方式,而是直接對solution的zip進行處理。在CRM中Export Solution,而後解壓,會看到有這些文件。blog

  

  首先咱們打開customizations.xml,找到關於Opportunity的Entity節點信息,把這個節點刪掉。ip

  

  接着再找到相關的EntityMap節點信息,把它也刪除掉開發

  

  這樣這個xml關於Opportunity的描述信息咱們就清理乾淨了。rem

  接下來再打開solution.xml,這裏也會有關於Opportunity的描述信息,把RootComponent刪掉。it

  

  而後還把MissingDependency節點都刪掉。

  

  這就等價於在CRM上把Opportunity Component從solution中remove掉,以後把文件再壓縮到zip包裏,更新後的solution就大功告成了。

 

  2. Component內容上的修改

  再來想象個場景,你的solution裏有100個Entity,關於這100個Entity此次迭代的內容,是每一個Entity上都新添加了一個名叫new_LastStage的字段,而後你須要將這部份內容更新到生產環境裏,怎麼實現呢?這個時候,solution的增量特性就頗有用了,咱們是否是能夠這麼想,每一個Entity都只包含new_LastStage字段,其餘的內容都去掉,而後再import到環境裏,由於是增量的,因此能達到效果,實現了字段的添加。

  接下來就說說如何修改。

  打開customizations.xml,找到Entities節點,以一個Entity爲例。

  

  attributes節點裏放了這個Entity的全部字段,除了new_LastStage,咱們把其它的attributes刪除,這樣咱們就只保留了要添加的字段,是否是很簡單呢!進一步而言,咱們徹底能夠控制Solution裏只有咱們想要的信息。上面的例子裏,若是隻是新加字段,不涉及form,view的改變,那咱們還能夠把form和view的節點內容清空;若是不涉及relationship添加,咱們還能夠把EntityMaps,EntityRelationships清空,這樣就大大減少了solution的複雜度,最後你會發現,環境不給力?Solution太大?這都不是事......

相關文章
相關標籤/搜索