重新生成xrm.cs后出现问题

时间:2014-09-23 16:12:31

标签: .net dynamics-crm-2011 dynamics-crm code-generation xrm

ISSUE:

我正在使用Microsoft Dynamics CRM 2011。我已将扩展程序(客户服务联系人)添加到我们的CRM中。

我也需要对UI进行一些相应的更改。为此,我开始使用 XRM.cs的再生进行更改。

我作为其中的一部分做了以下事情:

C:\Users\<userName>\SDK\Bin>CrmSvcUtil.exe 
/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,    
Microsoft.Xrm.Client.CodeGeneration" /out:\Xrm003.cs 
/url:http://<url_for_server>/<organization_name>/XRMServices/2011/Organization.svc
/domain:"<domain_name>" /username:"<username>" /password:"<password>" 
/namespace:<desired_namespace_name> /serviceContextName:XrmServiceContext

这有助于我重新生成Xrm003.cs。但是,当我将这个新生成的Xrm003.cs与现有的Xrm003.cs进行比较时,我可以看到实体中存在一些我根本没有碰过的差异。

以下是其中一些:

原来的人有:

    /// <summary>
    /// Drop-down list for selecting the category of the account.
    /// </summary>
    [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountcategorycode")]
    public Microsoft.Xrm.Sdk.OptionSetValue AccountCategoryCode
    {
        get
        {
            return this.GetAttributeValue<Microsoft.Xrm.Sdk.OptionSetValue>("accountcategorycode");
        }
        set
        {
            this.OnPropertyChanging("AccountCategoryCode");
            this.SetAttributeValue("accountcategorycode", value);
            this.OnPropertyChanged("AccountCategoryCode");
        }
    }

新人有:

    /// <summary>
    /// Drop-down list for selecting the category of the account.
    /// </summary>
    [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountcategorycode")]
    public System.Nullable<int> AccountCategoryCode
    {
        get
        {
            return this.GetAttributeValue<System.Nullable<int>>("accountcategorycode");
        }
        set
        {
            this.SetAttributeValue<Microsoft.Xrm.Sdk.OptionSetValue>("AccountCategoryCode", "accountcategorycode", value);
        }
    }

如果您发现差异,您将看到两件事:

  1. AccountCategoryCode的类型为Microsoft.Xrm.Sdk.OptionSetValue(原始版本)和System.Nullable<int>重新生成的内容。

  2. 实施set的方式。

  3. 这也适用于许多其他实体。

    任何人都可以让我知道为什么这是因为或者我错过了重生XRM.cs的任何步骤?提前谢谢!

    编辑: 可能是原因(?)的一件事是:我们在这两个XRM.c之间将Rollup 16应用于CRM。


    解决问题的解决方案:

    请参阅Daryl的回答,我已将其标记为答案。

    我按照他的说法对我的XRM.cs再生命令进行了如下更改(以下是一个适当的命令,帮助我解决了我的问题):

    C:\Users\<userName>\SDK\Bin>CrmSvcUtil.exe 
    /out:\Xrm003.cs 
    /url:http://<url_for_server>/<organization_name>/XRMServices/2011/Organization.svc
    /domain:"<domain_name>" /username:"<username>" /password:"<password>" 
    /namespace:<desired_namespace_name> /serviceContextName:XrmServiceContext
    

    结论:

    我在我的命令中跟随了导致我在Q中提到的问题:

    /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,    
    Microsoft.Xrm.Client.CodeGeneration"
    

    我的问题只是通过删除来解决。

1 个答案:

答案 0 :(得分:1)

您可以使用"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,Microsoft.Xrm.Client.CodeGeneration"生成一些自定义代码。我猜这就是改变了。它几乎看起来已经改变为在Windows RT中运行,因为它doesn't support the property changing events

您是否尝试过EarlyBound Generator