Search code examples
c#pluginsdynamics-crm

How to extract plugin dll using query expression in dynamics CRM


I need to extract plugin dll using query expression. I know I can do it using database and can extract it from "PluginAssemblyBase" table and "content" column. Is there anyway I can extract it using query expression?


Solution

  • You must get 'content' attribute and use 'FromBase64String' method to get raw bytes.

    String connectionString = @"AuthType=AD;Url=http://xyz/CRO; Domain=DEVDOMAIN; Username=user01; Password=12345";
    CrmServiceClient conn = new CrmServiceClient(connectionString);
    IOrganizationService orgService = conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy;
    QueryExpression qExpr = new QueryExpression("pluginassembly") { ColumnSet = new ColumnSet(new string[] { "pluginassemblyid", "content" }) };
    qExpr.Criteria.AddCondition("name", ConditionOperator.Equal, "YourAssemblyName");
    EntityCollection entColl = orgService.RetrieveMultiple(qExpr);
    Byte[] data = Convert.FromBase64String((String)entColl[0]["content"]);