//Start of Main public static void Main(string[] args) { Console.WriteLine("The process has started \nTrying to Export Solution"); //Create new user and gets credentials to login and capture desired solution Session loginUser = new Session(); ClientCredentials credentials = GetCredentials(loginUser); using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(loginUser.OrganizationUri,null, credentials, GetDeviceCredentials())) { string outputDir = @"C:\temp\"; //Creates the Export Request ExportSolutionRequest exportRequest = new ExportSolutionRequest(); exportRequest.Managed = true; exportRequest.SolutionName = loginUser.SolutionName; ExportSolutionResponse exportResponse = (ExportSolutionResponse)serviceProxy.Execute(exportRequest); //Handles the response byte[] exportXml = exportResponse.ExportSolutionFile; string filename = loginUser.SolutionName + "_" + DateToString() + ".zip"; File.WriteAllBytes(outputDir + filename, exportXml); Console.WriteLine("Solution Successfully Exported to {0}", outputDir + filename); } }
//Gets credentials for CRM access public static ClientCredentials GetCredentials(Session userSession) { ClientCredentials credentials = new ClientCredentials(); credentials.UserName.UserName = userSession.UserName; credentials.UserName.Password = userSession.Password; credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; return credentials; }