2014-02-12 57 views
0

如何減少工作流程組件的大小(MB)?減少工作流程組件大小

與4自定義工作流的活動的組件是2.5 MB與crmcsvutil.exe從CRM生成類;當生成的類不包含在項目中時,相同的程序集爲18 KB!

插件登記經常超時後發生故障,所以我真的想減小組件的尺寸。

我試圖把生成的類在單獨的程序,並引用它,並且將組件放置在GAC中,但得到一個錯誤。

這是當裝配在沙箱中(我真的很喜歡)註冊:

Assembly 'Tinkerbell.Workflows, Version=2.0.3.4, Culture=neutral, PublicKeyToken=692195edcbe6b163' is partially trusted, which causes the CLR to make it entirely security transparent regardless of any transparency annotations in the assembly itself. In order to access security critical code, this assembly must be fully trusted.' 

這是當組件註冊的沙箱之外:

'Object of type 'Microsoft.Xrm.Sdk.Entity' cannot be converted to type 'BusinessUnit'.' 

什麼這裏的選擇?
我不願意放棄早期上課。

回答

2

你只能產生你所需要的早期綁定實體,與此實用程序Filtering generated entities with CrmSvcUtil

你只需要與期望的實體指定一個xml:

<filter> 
    <entities> 
    <entity>systemuser</entity> 
    <entity>team</entity> 
    <entity>role</entity> 
    <entity>businessunit</entity> 
    </entities> 
</filter> 
1

您可以手動編輯CRM產生剝離所有,但你需要,但是這將是一個有點痛,並且需要,如果你曾經再生的CRM類文件要重做的實體類文件。

是否有一個理由,爲什麼你不想放棄早課?後期確實有一些優勢,速度稍快。如果你想保持早期的感覺,那麼你可以編寫你自己的類,然後編寫從你的類到實體的映射函數。

+0

我不希望到LINQ放棄CRM。我還可以在沒有生成類的情況下使用Linq嗎? – Bvrce

+1

並非如此,您必須使用一些獲取CRM數據的其他方法,一旦擁有該數據,您仍然可以使用LINQ to Objects。我個人使用QueryExpression,除非我需要做聚合,然後使用FetchXML。然後我編寫自己的類來包含我的業務邏輯,並最終映射函數以在兩者之間進行轉換。如果你想堅持使用LINQ to CRM,那麼你將不得不修剪CRM生成的文件。 –

+0

我需要一臺工業割草機來修剪該文件。感謝您深入瞭解您如何查詢CRM。我知道FetchXML和QueryExpression具有性能優勢,但Linq到CRM的可讀性和易用性非常好。 – Bvrce