Como posso fazer com que o CRMSvcUtil.exe gere conjuntos de opções de ligação antecipada, sem duplicação e sem erro

Eu uso a implementação de Erik Pool deICodeWriterFilterService e Manny GrewalGenerateOption funciona como um modelo para filtrar entidades indesejadas no arquivo queCRMSvcUtil gera. Enquanto Erik recomenda retornartrue para oGenerateOptionSet método para gerarenums para conjuntos de opções, duplicar qualquer conjunto de opções global usado por uma entidade específica (conforme mencionado emum dos comentários nessa postagem).

Para resolver isso, verifico se o conjunto de opções já foi gerado e, em caso afirmativo, retorno a opção padrão (presumivelmentefalse para a maioria dos casos), como mostrado abaix

//list of generated option sets, instantiated in the constructor
private List<string> GeneratedOptionSets;

public bool GenerateOptionSet
    (OptionSetMetadataBase optionSetMetadata, IServiceProvider services)
{
    if (!GeneratedOptionSets.Contains(optionSetMetadata.Name))
    {
        GeneratedOptionSets.Add(optionSetMetadata.Name);
        return true;
    }

    return _defaultService.GenerateOptionSet(optionSetMetadata, services);
}

Mas ao incorporar o arquivo gerado nos meus projetos de CRM, o erro de compilação

Cannot convert type 'Microsoft.Xrm.Sdk.OptionSetValue' to 'int'

é sempre gerado por todas as linhas de código que se parecem com

this.SetAttributeValue
    ("address1_shippingmethodcode", new Microsoft.Xrm.Sdk.OptionSetValue(((int)(value))));

.

Como solução alternativa, uso um projeto separado onde filtre as entidades necessárias, executeCRMSvcUtil com os argumentos que Erik sugere, substitua a parte problemática do código(int)(value) (Ondevalue é umOptionSetValue) comvalue.Value depois que o arquivo for gerado, salve-o novamente e todos os problemas desaparece

Minha pergunta é a seguinte: preciso fazer algo diferente para corrigir esse erro de compilação com o padrãoCRMSvcUtil arquivo gerado sem fazer algo tão hackish como alterar o arquivo gerad

questionAnswers(12)

yourAnswerToTheQuestion