2012-01-25 11 views
12

我使用CrmSvUtil这样:CrmSvcUtil只创造OrganizationServiceContext类衍生物(应该是CrmOrganizationServiceContext)

crmsvcutil.exe /url:http://crm2011/MyTestOrg/XRMServices/2011/Organization.svc /out:GeneratedCode.cs /namespace:Xrm /serviceContextName:XrmDataContext 

和输出包含成千上万的业务对象和这个上下文类:

[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "5.0.9688.1533")] 
public partial class XrmDataContext : Microsoft.Xrm.Sdk.Client.OrganizationServiceContext 

但是看样本(即。\ sdk \ walkthroughs \ portal \ consoleappwalkthrough)我清楚地可以看到那里的上下文类应该来自一个更强大的Org子类anizationServiceContext - > CrmOrganizationServiceContext:

[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "5.0.9688.583")] 
public partial class XrmServiceContext : Microsoft.Xrm.Client.CrmOrganizationServiceContext 

我肯定需要CrmOrganizationServiceContext因为只有这样,我有我需要的构造函数。那么我做错了什么,或者我错过了哪个设置?

+3

如果您在插件/自定义活动中使用生成的代码,则会导致问题,因为它需要依赖于microsoft.xrm.client.dll。此DLL不包含在默认的服务器安装中,您需要确保该服务器上存在dll(dev/qa/prod)。我决定不使用/ codecustomization标志出于这个原因,并决定坚持使用“OrganizationContext”派生类。 –

+0

很高兴知道。我目前的使用案例是访问本地网络上的CRM的外部数据导入/导出工具(控制台应用程序)。 – springy76

+0

嗨,谢谢springy76提出了我的确切问题,并感谢Abhijeet Patel发布了答案,但是我仍然遇到了另一个问题,即何时会使用上述任一方法?除了在prod服务器上提供的dll之外,还有其他优势吗? – Jaya

回答

14

查看该SDK SDK示例中给出的参数web version的参数。他们会生成你正在寻找的课程。

CrmSvcUtil.exe /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" /out:Xrm\Xrm.cs /url:http://Crm/Contoso/XRMServices/2011/Organization.svc /domain:CONTOSO /username:administrator /password:[email protected] /namespace:Xrm /serviceContextName:XrmServiceContext 
+2

我喜欢“无证”的CLI参数 - 甚至有可能为每个文件创建一个类,就像使用v4一样可以创建一个类? R#在这些5MB C#文件中死去。 – springy76

+0

如前所述,您可以过滤掉默认的'Xrm.cs'文件,只包含您感兴趣的实体以达到某种程度的满意度。我在最近的一个问题中提到了几种方法来做到这一点。 http://stackoverflow.com/questions/8946223/how-can-i-make-crmsvcutil-exe-generate-unduplicated-error-free-early-bound-opti –

+0

@ springy76:是的 - 这些无证的功能正在杀死我。我没有在任何地方看到'/ codeCustomization'参数的规格,但是我们需要这样的东西。 –

1

使用Early Bound Generator,并选择选中复选框 “使用XRM客户端”。它会用你期待的基类生成Context。