Dynamics crm 2011 减少工作流程序集大小

Dynamics crm 2011 减少工作流程序集大小,dynamics-crm-2011,dynamics-crm,dynamics-crm-2013,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm 2013,如何减少工作流程序集的大小(MB) 具有4个自定义工作流活动的程序集的大小为2.5 MB,其类由crmcsvutil.exe从CRM生成;当生成的类不包含在项目中时,相同的程序集为18KB 插件注册常常在超时后失败,所以我真的想减小程序集的大小 我尝试将生成的类放置在一个单独的程序集中并引用它,然后将该程序集放置在GAC中,但出现了一个错误 这是在沙箱中注册程序集时(我更喜欢): Assembly'Tinkerbell.Workflows,Version=2.0.3.4,Culture=neut

如何减少工作流程序集的大小(MB)

具有4个自定义工作流活动的程序集的大小为2.5 MB,其类由crmcsvutil.exe从CRM生成;当生成的类不包含在项目中时,相同的程序集为18KB

插件注册常常在超时后失败,所以我真的想减小程序集的大小

我尝试将生成的类放置在一个单独的程序集中并引用它,然后将该程序集放置在GAC中,但出现了一个错误

这是在沙箱中注册程序集时(我更喜欢):

Assembly'Tinkerbell.Workflows,Version=2.0.3.4,Culture=neutral,PublicKeyToken=692195edcbe6b163'是部分受信任的,这会导致CLR使其完全安全透明,而不考虑程序集中的任何透明批注。要访问安全关键代码,必须完全信任此程序集。'
当程序集在沙箱外部注册时:

“Microsoft.Xrm.Sdk.Entity”类型的对象无法转换为“BusinessUnit”类型
这里有什么选择

我不愿意放弃早期绑定的类。

您可以手动编辑CRM生成的类文件,以除去除所需实体以外的所有实体,但这会有点麻烦,如果您重新生成CRM类文件,则需要重新创建


你不想放弃早课有什么原因吗?晚绑定确实有一些优势,而且稍微快一点。如果您想保持早期绑定的感觉,那么您可以编写自己的类,然后编写将类转换为实体的映射函数。

您可以手动编辑CRM生成的类文件,以除去除您需要的实体之外的所有实体,但这会有点麻烦,如果您需要,则需要重新编写重新生成CRM类文件


你不想放弃早课有什么原因吗?晚绑定确实有一些优势,而且稍微快一点。如果您想保持早期绑定的感觉,那么您可以编写自己的类,然后编写将类转换为实体的映射函数。

您可以手动编辑CRM生成的类文件,以除去除您需要的实体之外的所有实体,但这会有点麻烦,如果您需要,则需要重新编写重新生成CRM类文件


你不想放弃早课有什么原因吗?晚绑定确实有一些优势,而且稍微快一点。如果您想保持早期绑定的感觉,那么您可以编写自己的类,然后编写将类转换为实体的映射函数。

您可以手动编辑CRM生成的类文件,以除去除您需要的实体之外的所有实体,但这会有点麻烦,如果您需要,则需要重新编写重新生成CRM类文件


你不想放弃早课有什么原因吗?晚绑定确实有一些优势,而且稍微快一点。如果您想保持早期绑定的感觉,那么您可以编写自己的类,然后编写从类到实体的映射函数。

使用此实用程序,您只能生成所需的早期绑定实体

您只需要指定包含所需实体的xml:

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

系统用户
团队
角色
业务单位

使用此实用程序,您只能生成所需的早期绑定实体

您只需要指定包含所需实体的xml:

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

系统用户
团队
角色
业务单位

使用此实用程序,您只能生成所需的早期绑定实体

您只需要指定包含所需实体的xml:

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

系统用户
团队
角色
业务单位

使用此实用程序,您只能生成所需的早期绑定实体

您只需要指定包含所需实体的xml:

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

系统用户
团队
角色
业务单位


我不想把Linq交给CRM。在没有生成的类的情况下,我仍然可以使用Linq吗?不完全可以,您必须使用其他一些获取CRM数据的方法,一旦您有了这些数据,您仍然可以使用Linq访问对象。就我个人而言,我使用QueryExpression,除非我需要进行聚合,否则我使用FetchXML。然后我编写自己的类来包含我的业务逻辑,最后映射函数以在两者之间进行转换。如果你想坚持使用LINQ to CRM,那么你必须修剪CRM生成的文件。我需要一台工业割草机来修剪该文件。感谢您深入了解如何查询CRM。我知道FetchXML和QueryExpression对性能有好处,但Linq to CRM的可读性和易用性非常好。你知道我在沙箱之外注册程序集时为什么会出现这种错误吗?我希望在GAC中的程序集中生成类,但会不断出现该错误,或类似错误,具体取决于实体。很抱歉,在这方面我无法帮助您。我有一个使用早期绑定类的插件,我将类文件包含在插件DLL中,这样它就不必试图从GAC获得它。我不想把Linq交给CRM。在没有生成的类的情况下,我仍然可以使用Linq吗?不完全可以,您必须使用其他一些获取CRM数据的方法,一旦您有了这些数据,您仍然可以使用Linq访问对象。就我个人而言,我使用QueryExpression,除非我需要进行聚合,否则我使用FetchXML。然后我编写自己的类来包含我的业务逻辑,最后映射函数以在两者之间进行转换。如果你想坚持使用LINQ to CRM,那么你必须修剪CRM生成的文件。我需要一台工业割草机来修剪该文件。感谢您深入了解如何查询CRM。我知道有一个