[英]Generating CRM Proxy classes as separate files
我一直在使用引用 Dynamics CRM 租户的旧程序集。 该程序集包含(除其他外)租户的代理类。 我需要将代理类更新到最新版本。
我过去曾使用 crmsvcutil.exe 为租户生成代理 class 文件,但在此程序集中,每个类都在自己单独的文件中。 例如,有一个“person”c-sharp 文件,其中包含 person 实体的变量和 get/set 方法。
当前文件格式如下:
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace CRM2011.Proxy.Organisation
{
[GeneratedCode("System.Xml", "4.0.30319.1"), DesignerCategory("code"), DebuggerStepThrough, XmlType(Namespace = "http://schemas.microsoft.com/crm/2007/WebServices")]
[Serializable]
public class thr_offer : BusinessEntity
{
private Lookup createdbyField;
private CrmDateTime createdonField;
//More variables here
public Lookup createdby
{
get
{
return this.createdbyField;
}
set
{
this.createdbyField = value;
}
}
public CrmDateTime createdon
{
get
{
return this.createdonField;
}
set
{
this.createdonField = value;
}
}
//More get/set methods here
}
这些似乎是由工具生成的,但我不知道有任何工具可以做到这一点。 如果我可以生成诸如此类的文件而不是 crmsvcutil.exe 生成的庞大文件,那将使开发变得更加容易。
有任何想法吗?
这些文件是使用CRM 4.0 SDK生成的( CrmDateTime
响起了钟声)。
使用CRM 4.0 SDK中的CrmSvcUtil.exe
,可以生成单独的文件,如此处所述:
http://msdn.microsoft.com/en-us/library/ff681563.aspx
/ out参数
确定.cs或.xml输出文件的名称,以及每个实体是一个文件还是一个文件。 它可能包含完整路径。 如果您指定的名称不以.cs或.xml结尾,则CrmSvcUtil会将系统中每个实体的单个.cs文件写入您指定的文件夹。 例如,/ out:MyClasses将每个实体的类文件(.cs)输出到名为MyClasses的文件夹中,但是/out:MyClasses.cs输出包含所有实体的类文件(MyClasses.cs)。
此“功能”已从CRM 2011 SDK中删除(如果您尝试指定不带文件扩展名的名称,它将仍然生成单个文件)
您可能需要创建一个拼接器,以便在将实体生成到一个文件中之后为您拼接这些实体,或者创建CrmSvcUtil扩展来为您执行此基本行为更改。
编辑 XrmToolBox中的Early Bound Generator通过配置进行的操作。
Microsoft.CrmSdk.CoreTools 9.1.0.108 中包含的 CrmSvcUtil支持使用命令行 arguments /splitfiles
和/outdirectory
将实体(和其他类型)拆分为单个文件。
注意:CrmSvcUtil 并非 100% 清楚/splitfiles
参数,因为它本身被引用为/SplitToFiles
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.