FolksUma dica rapida...Existe uma ferramenta padrao da MS para nos ajudar no transporte de [dados] de uma Organizacao para outra.Muito util, porque replicar qualquer dado de configuracao na mao e muito macante!... Configuration Migration Tool in Dynamics CRMhttps://technet.microsoft.com/en-us/library/dn647421(v=crm.6).aspxCheers! Por um acaso, ao tentar importar uma solucao no CRM, ja se deparou com o seguinte erro:There should only be at most one instance of RibbonCustomization per solution per entity. Current entity: [entityName]. Current solution: [guid]Pois bem, muito provavelmente o metadados de Ribbons do seu CRM esta, digamos, corrompido! Sao varios os motivos para que isto possa ter ocorrido, como por exemplo, em uma migracao de versao.Como se corrige isto, entao? Atue no metadados de Ribbons, eliminando as duplicidades.A Procedure abaixo faz justamente isto, para todas as entidades do banco do CRM.declare @tables table (id int identity, name nvarchar(100))declare @count int, @currentTable nvarchar(100), @sql nvarchar(max)declare @RibbonCustomizationId uniqueidentifier, @RibbonCustomizationUniqueId uniqueidentifier, @Entity nvarchar(100), @SolutionId uniqueidentifier, @SupportingSolutionId uniqueidentifier, @ComponentState int, @OverwriteTime datetime, @OrganizationId uniqueidentifier, @PublishedOn datetime, @IsManaged bit-- BUSCA TODAS AS TABELAS DO CRMinsert into @tables (name)select namefrom sysobjectswhere type = 'v'order by name-- LOOP NAS TABELASselect @count = count(*) from @tableswhile (@count > 0)begin select @currentTable = name from @tables where id = @count -- CRIA UMA TEMP TABLE PARA GUARDAR OS RIBBONS AGRUPADOS POR [SolutionId] declare @Unique_RibbonCustomization table ( RibbonCustomizationId uniqueidentifier, RibbonCustomizationUniqueId uniqueidentifier, Entity nvarchar(100), SolutionId uniqueidentifier, SupportingSolutionId uniqueidentifier, ComponentState int, OverwriteTime datetime, OrganizationId uniqueidentifier, PublishedOn datetime, IsManaged bit) insert into @Unique_RibbonCustomization select RibbonCustomizationId, RibbonCustomizationUniqueId, Entity, SolutionId, SupportingSolutionId, ComponentState, OverwriteTime, OrganizationId, PublishedOn, IsManaged from ( select *, row_number() over (partition by SolutionId order by SolutionId) as row_number from RibbonCustomization where entity = @currentTable ) as r where row_number = 1 -- GUARDA OS IDS (RibbonCustomizationId) QUE POSSUEM DUPLICIDADE DE RIBBON declare @Diff_RibbonCustomization table (RibbonCustomizationId uniqueidentifier) insert into @Diff_RibbonCustomization select RibbonCustomizationId from RibbonCustomization where entity = @currentTable and RibbonCustomizationId not in (select RibbonCustomizationId from @Unique_RibbonCustomization) if (exists(select * from @Diff_RibbonCustomization)) begin print 'Correcting EntityRibbon for: ' + @currentTable + '...' -- EXCLUIR OS RIBBONS DUPLICADOS PARA A ENTIDADE DO LOOP delete from RibbonCustomization where Entity = @currentTable and RibbonCustomizationId in (select RibbonCustomizationId from @Diff_RibbonCustomization) -- EXCLUI AS DEPENDENCIAS (SolutionComponentBase, dependencybase e DependencyNodeBase) delete from SolutionComponentBase where ObjectId in (select RibbonCustomizationId from @Diff_RibbonCustomization) delete db from dependencybase db inner join dependencynodebase dnb on db.dependentcomponentnodeid = dnb.dependencynodeid or db.RequiredComponentNodeId = dnb.dependencynodeid where dnb.ObjectId in (select RibbonCustomizationId from @Diff_RibbonCustomization) delete from DependencyNodeBase where ObjectId in (select RibbonCustomizationId from @Diff_RibbonCustomization) end select @count = @count - 1, @currentTable = nullendprint 'Done.'Apos rodar a proc voce conseguira importar sua solucao sem problemas - espero! :)[]s No SDK do CRM existe um codigo bem extenso que e usado para conexao a qualquer tipo Dynamics CRM - ActiveDirectory, LiveId, Federation e OnlineFederation.Com certeza este codigo e bem util, porem, muito extenso se precisarmos de um recurso para uma versao de autenticacao especifica, como por exemplo a [Federation - IFD].Por exemplo, como saber se o meu CRM IFD vai expirar? Neste sentido segue uma classe para nos ajudar a identificar quando o [Token] vai expirar. Crie a classe [DiscoveryServiceHelper]using Microsoft.Xrm.Sdk;using Microsoft.Xrm.Sdk.Client;using System;using System.Collections.Generic;using System.Linq;using