2012-01-25 26 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。