我一直在使用引用Dynamics CRM租户的旧程序集。程序集包含(除其他外)租户的代理类。我需要将代理类更新到最新版本。
我过去曾使用crmsvcutil.exe为租户生成代理类文件,但在此程序集中,每个类都在各自的单独文件中。例如,有一个'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生成的怪异文件,那么它将使开发变得更加容易。
有什么想法吗?
答案 0 :(得分:4)
使用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中删除(如果您尝试指定不带文件扩展名的名称,它仍会生成单个文件)
答案 1 :(得分:1)
您必须创建一个拼接器,在它们生成单个文件后为您拼接实体,或创建CrmSvcUtil扩展,为您执行此基本行为更改。
编辑 XrmToolBox中的早期绑定生成器通过配置执行。