<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Aymeric @ Microsoft</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/aymerics_blog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/feed.xml</link>
    <description>A Dynamic Dev Blog!</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:18:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Full Dynamics 365 SDK download with PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/full-dynamics-365-sdk-download-with-powershell</link>
      <pubDate>Mon, 12 Feb 2018 13:16:07 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/?p=265</guid>
      <description><![CDATA[Since v9 version,  D365 CE SDK is only avaible thru Nuget.
This require to download each package to...]]></description>
      <content:encoded><![CDATA[Since v9 version,  D365 CE SDK is only avaible thru Nuget.
This require to download each package to store SDK ressources locally.

In order to automatize this operation for all packages, I've made a simple powhershell that download and organize SDK resources in a local folder.

<div style="background: #ffffff;overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em"><pre style="margin: 0;line-height: 125%">clear;

<span style="color: #008800;font-weight: bold">function</span> Provision-Folder
{
    <span style="color: #008800;font-weight: bold">PARAM</span>
    (
        [<span style="color: #008800;font-weight: bold">parameter</span>(<span style="color: #008800;font-weight: bold">Mandatory</span>=<span style="color: #996633">$true</span>)]<span style="color: #996633">$folderPath</span>
    )

	<span style="color: #008800;font-weight: bold">if</span>(<span style="color: #007020">Test-Path</span> <span style="color: #996633">$folderPath</span>)
	{
		<span style="color: #007020">Remove-Item</span> -Recurse -Force <span style="color: #996633">$folderPath</span>;
	}
    <span style="color: #007020">New-Item</span> -ItemType Directory -Force -Path <span style="color: #996633">$folderPath</span> | <span style="color: #007020">Out-Null</span>;
}

<span style="color: #888888"># Folder hierarchy</span>
<span style="color: #996633">$packagesPath</span> = <span style="background-color: #fff0f0">&quot;$PSScriptRoot\packages&quot;</span>;
Provision-Folder -folderPath <span style="color: #996633">$packagesPath</span>;
<span style="color: #996633">$toolsPath</span> = <span style="background-color: #fff0f0">&quot;$PSScriptRoot\tools&quot;</span>;
Provision-Folder -folderPath <span style="color: #996633">$toolsPath</span>;
<span style="color: #996633">$assembliesPath</span> = <span style="background-color: #fff0f0">&quot;$PSScriptRoot\assemblies&quot;</span>;
Provision-Folder -folderPath <span style="color: #996633">$assembliesPath</span>;
<span style="color: #996633">$samplesPath</span> = <span style="background-color: #fff0f0">&quot;$PSScriptRoot\samples&quot;</span>;
Provision-Folder -folderPath <span style="color: #996633">$samplesPath</span>;

<span style="color: #888888"># Parameters</span>
<span style="color: #996633">$nugetUrl</span> = <span style="background-color: #fff0f0">&quot;https://www.nuget.org/api/v2/package&quot;</span>;
<span style="color: #996633">$defaultFrameworkFolder</span> = <span style="background-color: #fff0f0">&quot;net452&quot;</span>;

<span style="color: #996633">$packages</span> = <span style="color: #FF0000;background-color: #FFAAAA">@</span>();
<span style="color: #888888"># https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/org-service/subscribe-sdk-assembly-updates-using-nuget#BKMK_GetNuGetPackages</span>
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.CoreTools&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.Deployment&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.Outlook&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.Workflow&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.CoreAssemblies&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.XrmTooling.CrmConnector.PowerShell&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.Outlook&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Sample;Microsoft.CrmSdk.Samples.HelperCode-CS&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Sample;Microsoft.CrmSdk.WebApi.Samples.HelperCode&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Tool;Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.XrmTooling.PackageDeployment&quot;</span>;
<span style="color: #996633">$packages</span> += <span style="background-color: #fff0f0">&quot;Assembly;Microsoft.CrmSdk.XrmTooling.WpfControls&quot;</span>;


<span style="color: #996633">$output</span> = <span style="background-color: #fff0f0">&quot;&quot;</span>;
<span style="color: #008800;font-weight: bold">foreach</span>(<span style="color: #996633">$packageInfos</span> <span style="color: #008800;font-weight: bold">in</span> <span style="color: #996633">$packages</span>)
{
    <span style="color: #996633">$packageType</span> = <span style="color: #996633">$packageInfos</span>.Split(<span style="background-color: #fff0f0">&quot;;&quot;</span>)[0];
    <span style="color: #996633">$packageName</span> = <span style="color: #996633">$packageInfos</span>.Split(<span style="background-color: #fff0f0">&quot;;&quot;</span>)[1];

    <span style="color: #996633">$zipPackagePath</span> = <span style="background-color: #fff0f0">&quot;$packagesPath\$packageName.zip&quot;</span>;
    <span style="color: #996633">$unzipPackagePath</span> = <span style="background-color: #fff0f0">&quot;$packagesPath\$packageName&quot;</span>;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;Package &#039;$packageName&#039; : &quot;</span> -ForegroundColor Yellow;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Retrieving package...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #007020">Invoke-WebRequest</span> <span style="background-color: #fff0f0">&quot;$nugetUrl/$packageName&quot;</span> -OutFile <span style="color: #996633">$zipPackagePath</span>;
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Unziping package...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #007020">Expand-Archive</span> -Path <span style="color: #996633">$zipPackagePath</span> -DestinationPath <span style="color: #996633">$unzipPackagePath</span> -Force;
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Removing zip package...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #007020">Remove-Item</span> -Path <span style="color: #996633">$zipPackagePath</span> -Force;
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;
    
    <span style="color: #996633">$sourcePaths</span> = <span style="color: #FF0000;background-color: #FFAAAA">@</span>();
    <span style="color: #996633">$targetPath</span> = <span style="background-color: #fff0f0">&quot;&quot;</span>;
    <span style="color: #008800;font-weight: bold">if</span>(<span style="color: #996633">$packageType</span> <span style="color: #333333">-eq</span> <span style="background-color: #fff0f0">&quot;Tool&quot;</span>)
    {
        <span style="color: #996633">$targetPath</span> = <span style="background-color: #fff0f0">&quot;$toolsPath\$packageName&quot;</span>;
        <span style="color: #996633">$sourcePaths</span> += <span style="background-color: #fff0f0">&quot;$unzipPackagePath\tools&quot;</span>;
        <span style="color: #996633">$sourcePaths</span> += <span style="background-color: #fff0f0">&quot;$unzipPackagePath\content\bin&quot;</span>;
    }
    <span style="color: #008800;font-weight: bold">elseif</span>(<span style="color: #996633">$packageType</span> <span style="color: #333333">-eq</span> <span style="background-color: #fff0f0">&quot;Assembly&quot;</span>)
    {
        <span style="color: #996633">$targetPath</span> = <span style="background-color: #fff0f0">&quot;$assembliesPath\$packageName&quot;</span>;
        <span style="color: #996633">$sourcePaths</span> += <span style="background-color: #fff0f0">&quot;$unzipPackagePath\lib\$defaultFrameworkFolder&quot;</span>;
    }
    <span style="color: #008800;font-weight: bold">elseif</span>(<span style="color: #996633">$packageType</span> <span style="color: #333333">-eq</span> <span style="background-color: #fff0f0">&quot;Sample&quot;</span>)
    {
        <span style="color: #996633">$targetPath</span> = <span style="background-color: #fff0f0">&quot;$samplesPath\$packageName&quot;</span>;
        <span style="color: #996633">$sourcePaths</span> += <span style="background-color: #fff0f0">&quot;$unzipPackagePath\content&quot;</span>;
    }

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Locating package content...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #996633">$validSourcePath</span> = <span style="background-color: #fff0f0">&quot;&quot;</span>;
    <span style="color: #008800;font-weight: bold">foreach</span>(<span style="color: #996633">$sourcePath</span> <span style="color: #008800;font-weight: bold">in</span> <span style="color: #996633">$sourcePaths</span>)
    {
        <span style="color: #008800;font-weight: bold">if</span>(<span style="color: #007020">Test-Path</span> -Path <span style="color: #996633">$sourcePath</span>)
        {
            <span style="color: #996633">$validSourcePath</span> = <span style="color: #996633">$sourcePath</span>;
            <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;
        }
    }
    <span style="color: #008800;font-weight: bold">if</span>(<span style="color: #996633">$validSourcePath</span> <span style="color: #333333">-eq</span> <span style="background-color: #fff0f0">&quot;&quot;</span>)
    {
        <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[KO]&quot;</span> -ForegroundColor Red;
    }
    
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Clearing target package folder...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #008800;font-weight: bold">if</span>(<span style="color: #007020">Test-Path</span> -Path <span style="color: #996633">$targetPath</span>)
    {
        <span style="color: #007020">Remove-Item</span> <span style="color: #996633">$targetPath</span> -Recurse -Force;
    }
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Moving package to target $packageType folder...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #007020">Copy-Item</span> <span style="color: #996633">$validSourcePath</span> <span style="color: #996633">$targetPath</span> -Recurse -Force;
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;

    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot; &gt; Clearing source package folder...&quot;</span> -NoNewline -ForegroundColor Gray;
    <span style="color: #008800;font-weight: bold">if</span>(<span style="color: #007020">Test-Path</span> -Path <span style="color: #996633">$validSourcePath</span>)
    {
        <span style="color: #007020">Remove-Item</span> <span style="color: #996633">$validSourcePath</span> -Recurse -Force;
    }
    <span style="color: #007020">Write-Host</span> <span style="background-color: #fff0f0">&quot;[OK]&quot;</span> -ForegroundColor Green;
}
</pre></div>


Hope that help!]]></content:encoded>
    </item>
    <item>
      <title>Deploy plugins / workflows assemblies with Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/deploy-plugins-workflows-assemblies-with-powershell</link>
      <pubDate>Tue, 09 Jun 2015 13:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2015/06/09/deploy-plugins-workflows-assemblies-with-powershell/</guid>
      <description><![CDATA[&nbsp;
Context
When you work on a new plugin, you need to deploy it multiple time to get the...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Context</h2>
<p>When you work on a new plugin, you need to deploy it multiple time to get the expected behavior regarding customer need. <br />But, using Registration Tool multiple time per day represent an optimisable workload considering manual operations and also the risk of human error. <br />So I have made a little script that scan the binaries folder in output of Visual Studio compilation and update the existing CRM assemblies.</p>
<h2>Prerequisites</h2>
<p>The script couldn&rsquo;t run properly without the following criterias:</p>
<ol>
<li>CRM user specified in configuration file need to be system administrator (update assembly)</li>
<li>You should provide an <strong>Assemblies</strong>folder that contains<ol>
<li>CRM SDK assemblies :<ol>
<li>Microsoft.Xrm.Sdk.dll</li>
<li>Microsoft.Xrm.Client.dll</li>
<li>Microsoft.Crm.Sdk.Proxy.dll</li>
</ol></li>
</ol></li>
<li>Script must be run with elevated privil&egrave;ges</li>
</ol>
<p>&nbsp;</p>
<h2>Process</h2>
<ol>
<li>Scan assembly folder given in parameter</li>
<li>Check if assembly need to be updated (regarding configuration : name and configuration)</li>
<li>Update assembly</li>
<li>Deploy debug symbols (pdb) to configured folder </li>
</ol>
<h2>Configuration</h2>
<p>The script use a configuration.xml file that provide the following parameters :</p>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Configuration</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span>     <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">CrmConnectionString</span><span style="color: #0000ff;">&gt;</span>Url=https://crm/dev<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">CrmConnectionString</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span>     <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Assemblies</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span>         <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Path</span><span style="color: #0000ff;">&gt;</span>c:\MCS\Assemblies<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Path</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span>         <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Configuration</span><span style="color: #0000ff;">&gt;</span>debug<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Configuration</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span>         <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Names</span><span style="color: #0000ff;">&gt;</span>Plugins.dll;Workflows.dll;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Names</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span>         <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">SymbolPath</span><span style="color: #0000ff;">&gt;</span>\\crmsrv\C$\Program Files\Microsoft Dynamics CRM\Server\bin\assembly<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">SymbolPath</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span>     <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Assemblies</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum9" style="color: #606060;"> 9:</span> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Configuration</span><span style="color: #0000ff;">&gt;</span></pre>
<!--CRLF--></div>
</div>
<ul>
<li><strong>CrmConnectionString</strong> : Connection to CRM organization (More info :<a href="https://msdn.microsoft.com/en-us/library/gg695810.aspx">https://msdn.microsoft.com/en-us/library/gg695810.aspx</a>)</li>
<li>Assemblies</li>
<ul>
<li><strong>Path</strong> : Folder where assemblies are outputed</li>
<li><strong>Configuration</strong> : Specify if assemblies are build in &ldquo;debug&rdquo; or &ldquo;release&rdquo;</li>
<li><strong>Names</strong> : Names of the assemblies to update &lsquo;'(separated with semi-colon &lsquo;;&rsquo;)</li>
<li><strong>SymbolPath</strong> : Folder where to copy pdb files for debug purposes </li>
</ul>
</ul>
<h2>Script</h2>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> clear;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span> <span style="color: #0000ff;">function</span> Add-Crm-Sdk</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span>     <span style="color: #008000;"># Load SDK assemblies</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Sdk.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Client.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Crm.Sdk.Proxy.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum9" style="color: #606060;"> 9:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum10" style="color: #606060;"> 10:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum11" style="color: #606060;"> 11:</span> <span style="color: #0000ff;">function</span> Get-Configuration()</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum12" style="color: #606060;"> 12:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum13" style="color: #606060;"> 13:</span>     $configFilePath = <span style="color: #006080;">"$PSScriptRoot\Configuration.xml"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum14" style="color: #606060;"> 14:</span>     $content = Get-Content $configFilePath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum15" style="color: #606060;"> 15:</span>     <span style="color: #0000ff;">return</span> [xml]$content;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum16" style="color: #606060;"> 16:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum17" style="color: #606060;"> 17:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum18" style="color: #606060;"> 18:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum19" style="color: #606060;"> 19:</span> <span style="color: #0000ff;">function</span> Get-Assembly</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum20" style="color: #606060;"> 20:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum21" style="color: #606060;"> 21:</span>      PARAM</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum22" style="color: #606060;"> 22:</span>     (</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum23" style="color: #606060;"> 23:</span>         [parameter(Mandatory=$true)]$name,</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum24" style="color: #606060;"> 24:</span>         [parameter(Mandatory=$true)]$orgService</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum25" style="color: #606060;"> 25:</span>     )</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum26" style="color: #606060;"> 26:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum27" style="color: #606060;"> 27:</span>     $query = New-Object -TypeName Microsoft.Xrm.Sdk.Query.QueryExpression -ArgumentList <span style="color: #006080;">"pluginassembly"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum28" style="color: #606060;"> 28:</span>     $query.Criteria.AddCondition(<span style="color: #006080;">"name"</span>, [Microsoft.Xrm.Sdk.Query.ConditionOperator]::Equal, $name);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum29" style="color: #606060;"> 29:</span>     $query.ColumnSet =  New-Object -TypeName Microsoft.Xrm.Sdk.Query.ColumnSet -ArgumentList $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum30" style="color: #606060;"> 30:</span>     $results = $orgService.RetrieveMultiple($query);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum31" style="color: #606060;"> 31:</span>     $records = $results.Entities;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum32" style="color: #606060;"> 32:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum33" style="color: #606060;"> 33:</span>     <span style="color: #0000ff;">if</span>($records.Count <span style="color: #cc6633;">-eq</span> 1)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum34" style="color: #606060;"> 34:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum35" style="color: #606060;"> 35:</span>         <span style="color: #0000ff;">return</span> $records[0];</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum36" style="color: #606060;"> 36:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum37" style="color: #606060;"> 37:</span>     <span style="color: #0000ff;">return</span> $null;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum38" style="color: #606060;"> 38:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum39" style="color: #606060;"> 39:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum40" style="color: #606060;"> 40:</span> <span style="color: #0000ff;">function</span> Get-Base64</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum41" style="color: #606060;"> 41:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum42" style="color: #606060;"> 42:</span>     PARAM</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum43" style="color: #606060;"> 43:</span>     (</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum44" style="color: #606060;"> 44:</span>         [parameter(Mandatory=$true)]$path</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum45" style="color: #606060;"> 45:</span>     )</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum46" style="color: #606060;"> 46:</span>     </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum47" style="color: #606060;"> 47:</span>     $content = [System.IO.File]::ReadAllBytes($path);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum48" style="color: #606060;"> 48:</span>     $content64 = [System.Convert]::ToBase64String($content);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum49" style="color: #606060;"> 49:</span>     <span style="color: #0000ff;">return</span> $content64;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum50" style="color: #606060;"> 50:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum51" style="color: #606060;"> 51:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum52" style="color: #606060;"> 52:</span> Add-Crm-Sdk;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum53" style="color: #606060;"> 53:</span> $config = Get-Configuration;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum54" style="color: #606060;"> 54:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum55" style="color: #606060;"> 55:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum56" style="color: #606060;"> 56:</span> <span style="color: #008000;"># Crm Connection</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum57" style="color: #606060;"> 57:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum58" style="color: #606060;"> 58:</span> $crmConnectionString = $config.Configuration.CrmConnectionString;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum59" style="color: #606060;"> 59:</span> $crmConnection = [Microsoft.Xrm.Client.CrmConnection]::Parse($crmConnectionString);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum60" style="color: #606060;"> 60:</span> $service = New-Object -TypeName Microsoft.Xrm.Client.Services.OrganizationService -ArgumentList $crmConnection;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum61" style="color: #606060;"> 61:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum62" style="color: #606060;"> 62:</span> $assembliesPath = $config.Configuration.Assemblies.Path;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum63" style="color: #606060;"> 63:</span> $assemblyConfiguration = $config.Configuration.Assemblies.Configuration.ToLower();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum64" style="color: #606060;"> 64:</span> $assembliesToDeploy = $config.Configuration.Assemblies.Names.Split(<span style="color: #006080;">";"</span>, [StringSplitOptions]::RemoveEmptyEntries);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum65" style="color: #606060;"> 65:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum66" style="color: #606060;"> 66:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum67" style="color: #606060;"> 67:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum68" style="color: #606060;"> 68:</span> <span style="color: #008000;"># Process assemblies</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum69" style="color: #606060;"> 69:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum70" style="color: #606060;"> 70:</span> $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum71" style="color: #606060;"> 71:</span> Write-Host <span style="color: #006080;">"$d - Deploy Assemblies ($assemblyConfiguration) start"</span> -ForegroundColor Cyan;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum72" style="color: #606060;"> 72:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum73" style="color: #606060;"> 73:</span> $assemblies = Get-ChildItem $assembliesPath -recurse -include *.dll;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum74" style="color: #606060;"> 74:</span> $assemblies | ForEach-Object {        </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum75" style="color: #606060;"> 75:</span>     $assemblyPath = $_.FullName.ToString();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum76" style="color: #606060;"> 76:</span>     $assemblyName = $_.Name.ToString();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum77" style="color: #606060;"> 77:</span>         </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum78" style="color: #606060;"> 78:</span>     <span style="color: #0000ff;">if</span>($assemblyPath.Contains(<span style="color: #006080;">"bin"</span>) -and $assemblyPath.ToLower().Contains($assemblyConfiguration))</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum79" style="color: #606060;"> 79:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum80" style="color: #606060;"> 80:</span>         <span style="color: #0000ff;">foreach</span>($assemblyToDeploy <span style="color: #0000ff;">in</span> $assembliesToDeploy)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum81" style="color: #606060;"> 81:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum82" style="color: #606060;"> 82:</span>             <span style="color: #0000ff;">if</span>($assemblyName <span style="color: #cc6633;">-eq</span> $assemblyToDeploy)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum83" style="color: #606060;"> 83:</span>             {        </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum84" style="color: #606060;"> 84:</span>                 Write-Host <span style="color: #006080;">" - Deploying assembly $assemblyPath ..."</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum85" style="color: #606060;"> 85:</span>                 </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum86" style="color: #606060;"> 86:</span>                 $assemblyFile = [System.Reflection.Assembly]::LoadFile($assemblyPath);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum87" style="color: #606060;"> 87:</span>                 $assemblyProperties = $assemblyFile.GetName().FullName.Split(<span style="color: #006080;">",= "</span>.ToCharArray(), [StringSplitOptions]::RemoveEmptyEntries);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum88" style="color: #606060;"> 88:</span>                 $assemblyShortName = $assemblyProperties[0];</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum89" style="color: #606060;"> 89:</span>                 $assemblyFile = $null;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum90" style="color: #606060;"> 90:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum91" style="color: #606060;"> 91:</span>                 $assemblyContent = Get-Base64 $assemblyPath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum92" style="color: #606060;"> 92:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum93" style="color: #606060;"> 93:</span>                 Write-Host <span style="color: #006080;">" &gt; Searching assembly $assemblyShortName ..."</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum94" style="color: #606060;"> 94:</span>                 $crmAssembly = Get-Assembly -name $assemblyShortName -orgService $service;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum95" style="color: #606060;"> 95:</span>                 <span style="color: #0000ff;">if</span> ($crmAssembly <span style="color: #cc6633;">-eq</span> $null)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum96" style="color: #606060;"> 96:</span>                 {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum97" style="color: #606060;"> 97:</span>                     Write-Host <span style="color: #006080;">"not found!"</span> -ForegroundColor Red; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum98" style="color: #606060;"> 98:</span>                     <span style="color: #0000ff;">continue</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum99" style="color: #606060;"> 99:</span>                 }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum100" style="color: #606060;"> 100:</span>                 <span style="color: #0000ff;">else</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum101" style="color: #606060;"> 101:</span>                 {    </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum102" style="color: #606060;"> 102:</span>                     Write-Host <span style="color: #006080;">"found!"</span> -ForegroundColor Green; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum103" style="color: #606060;"> 103:</span>                 }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum104" style="color: #606060;"> 104:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum105" style="color: #606060;"> 105:</span>                 $crmAssembly[<span style="color: #006080;">"version"</span>] = $assemblyProperties[2];</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum106" style="color: #606060;"> 106:</span>                 $crmAssembly[<span style="color: #006080;">"culture"</span>] = $assemblyProperties[4];</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum107" style="color: #606060;"> 107:</span>                 $crmAssembly[<span style="color: #006080;">"publickeytoken"</span>] = $assemblyProperties[6];</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum108" style="color: #606060;"> 108:</span>                 $crmAssembly[<span style="color: #006080;">"content"</span>] = $assemblyContent;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum109" style="color: #606060;"> 109:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum110" style="color: #606060;"> 110:</span>                 Write-Host <span style="color: #006080;">" &gt; Updating assembly $assemblyShortName ..."</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum111" style="color: #606060;"> 111:</span>                 try</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum112" style="color: #606060;"> 112:</span>                 {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum113" style="color: #606060;"> 113:</span>                     $service.Update($crmAssembly);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum114" style="color: #606060;"> 114:</span>                 }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum115" style="color: #606060;"> 115:</span>                 catch [Exception]</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum116" style="color: #606060;"> 116:</span>                 {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum117" style="color: #606060;"> 117:</span>                     Write-Host <span style="color: #006080;">"failed! [Error : $_.Exception]"</span> -ForegroundColor Red;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum118" style="color: #606060;"> 118:</span>                     <span style="color: #0000ff;">break</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum119" style="color: #606060;"> 119:</span>                 }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum120" style="color: #606060;"> 120:</span>                 $assemblyFile = $null;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum121" style="color: #606060;"> 121:</span>                 </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum122" style="color: #606060;"> 122:</span>                 Write-Host <span style="color: #006080;">"done!"</span> -ForegroundColor Green; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum123" style="color: #606060;"> 123:</span>                 <span style="color: #0000ff;">break</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum124" style="color: #606060;"> 124:</span>             }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum125" style="color: #606060;"> 125:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum126" style="color: #606060;"> 126:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum127" style="color: #606060;"> 127:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum128" style="color: #606060;"> 128:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum129" style="color: #606060;"> 129:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum130" style="color: #606060;"> 130:</span> <span style="color: #008000;"># Deploy PDB</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum131" style="color: #606060;"> 131:</span> <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum132" style="color: #606060;"> 132:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum133" style="color: #606060;"> 133:</span> Write-Host <span style="color: #006080;">""</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum134" style="color: #606060;"> 134:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum135" style="color: #606060;"> 135:</span> $debugFolder = $config.Configuration.Assemblies.SymbolPath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum136" style="color: #606060;"> 136:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum137" style="color: #606060;"> 137:</span> <span style="color: #0000ff;">if</span>(![string]::IsNullOrEmpty($debugFolder))</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum138" style="color: #606060;"> 138:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum139" style="color: #606060;"> 139:</span>     $debugFiles = Get-ChildItem $assembliesPath -recurse -include *.pdb;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum140" style="color: #606060;"> 140:</span>     $debugFiles | ForEach-Object {  </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum141" style="color: #606060;"> 141:</span>         $debugFilePath = $_.FullName.ToString();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum142" style="color: #606060;"> 142:</span>         $debugFileName = $_.Name.ToString();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum143" style="color: #606060;"> 143:</span>         <span style="color: #0000ff;">if</span>($debugFilePath.Contains(<span style="color: #006080;">"bin"</span>) -and $debugFilePath.Contains(<span style="color: #006080;">"$assemblyConfiguration"</span>))</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum144" style="color: #606060;"> 144:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum145" style="color: #606060;"> 145:</span>             Write-Host <span style="color: #006080;">" - Deploying pdb $debugFilePath to $debugFolder ..."</span> -NoNewLine;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum146" style="color: #606060;"> 146:</span>             Copy-Item $debugFilePath -Destination $debugFolder -Force;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum147" style="color: #606060;"> 147:</span>             Write-Host -ForegroundColor Green <span style="color: #006080;">"Done!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum148" style="color: #606060;"> 148:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum149" style="color: #606060;"> 149:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum150" style="color: #606060;"> 150:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum151" style="color: #606060;"> 151:</span> $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum152" style="color: #606060;"> 152:</span> Write-Host <span style="color: #006080;">"$d - Deploy Assemblies ($assemblyConfiguration) stop"</span> -ForegroundColor Cyan;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum153" style="color: #606060;"> 153:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum154" style="color: #606060;"> 154:</span> $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;"><span id="lnum155" style="color: #606060;"> 155:</span> Write-Host <span style="color: #006080;">"$d - Deploy assemblies stop"</span> -ForegroundColor Cyan;</pre>
<!--CRLF--></div>
</div>
<p align="center"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/1222.CrmDeployAssemblies.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95/1222.CrmDeployAssemblies.zip" target="_blank"><span style="font-size: x-small;"><strong><span style="text-decoration: underline;">Download full script</span></strong></span></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Synchronize a WebResources folder to CRM with Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/synchronize-a-webresources-folder-to-crm-with-powershell</link>
      <pubDate>Sat, 06 Jun 2015 10:30:23 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2015/06/06/synchronize-a-webresources-folder-to-crm-with-powershell/</guid>
      <description><![CDATA[&#160;  If you need to synchronize all webresource from a local folder tree to a CRM solution with a...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>If you need to synchronize all webresource from a local folder tree to a CRM solution with a simple Powershell script, I have the solution! <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sourire" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/metablogapi/2352.wlEmoticon-smile_10801041.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-metablogapi/2352.wlEmoticon_2D00_smile_5F00_10801041.png" /></p>  <h2>Process</h2>  <p>The Powershell script realizes the following operations:</p>  <ol>   <li>Load configuration file</li>    <li>Connect to CRM</li>    <li>Load files from specified folder which have been modified in give timeframe</li>    <li>Process each file</li>    <ol>     <li>Check if file match to an existing Webresource</li>      <li>If not</li>      <ol>       <li>Create the webresource according to the file extension</li>        <li>Add webresource to given solution</li>     </ol>      <li>Else</li>      <ol>       <li>Check if webresource content has changed</li>        <li>If content is different, update webresouce</li>     </ol>   </ol>    <li>Publish modifications if changes have been detected</li> </ol>  <p>&#160;</p>  <h2>Prerequisites</h2>  <p>The script couldn’t run properly without the following criterias:</p>  <ol>   <li>CRM user specified in configuration file need to be system administrator (create / update webresources, publish) </li>    <li>You should provide an <strong>Assemblies</strong> folder that contains </li>    <ol>     <li>CRM SDK assemblies : </li>      <ol>       <li>Microsoft.Xrm.Sdk.dll </li>        <li>Microsoft.Xrm.Client.dll </li>        <li>Microsoft.Crm.Sdk.Proxy.dll </li>     </ol>   </ol>    <li>Script must be run with elevated privileges </li> </ol>  <p>&#160;</p>  <h2>Configuration</h2>  <p>The script use a configuration.xml file that provide the following parameters :</p>  <div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4">   <div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4">     <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum1" style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">Configuration</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum2" style="color: #606060">   2:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">CrmConnectionString</span><span style="color: #0000ff">&gt;</span>Url=https://crm/dev<span style="color: #0000ff">&lt;/</span><span style="color: #800000">CrmConnectionString</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum3" style="color: #606060">   3:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">DeltaHours</span><span style="color: #0000ff">&gt;</span>15<span style="color: #0000ff">&lt;/</span><span style="color: #800000">DeltaHours</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum4" style="color: #606060">   4:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">SolutionName</span><span style="color: #0000ff">&gt;</span>Solution1<span style="color: #0000ff">&lt;/</span><span style="color: #800000">SolutionName</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum5" style="color: #606060">   5:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">SolutionPrefix</span><span style="color: #0000ff">&gt;</span>new_<span style="color: #0000ff">&lt;/</span><span style="color: #800000">SolutionPrefix</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum6" style="color: #606060">   6:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">WebResourceFolderPath</span><span style="color: #0000ff">&gt;</span>c:\MCS\WebResouces<span style="color: #0000ff">&lt;/</span><span style="color: #800000">WebResourceFolderPath</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum7" style="color: #606060">   7:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">Configuration</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF--></div>
</div>

<ul>
  <li><strong>CrmConnectionString</strong> : <font style="background-color: rgb(255,255,255)">Connection to CRM organization (More info : </font><a href="https://msdn.microsoft.com/en-us/library/gg695810.aspx"><font style="background-color: rgb(255,255,255)">https://msdn.microsoft.com/en-us/library/gg695810.aspx</font></a><font style="background-color: rgb(255,255,255)">)</font> </li>

  <li><strong>DeltaHours</strong> : Number of hours before the execution time that determine if the file is considered as changed (prevent to process a lot of file if it is not necessary)</li>

  <li><strong>SolutionName</strong> : Name of the CRM solution where webresources should be added</li>

  <li><strong>SolutionPrefix</strong> : Prefix used by webresource name in solution</li>

  <li><strong>WebResourceFolderPath</strong> : Path to the folder that contains webresource files.</li>
</ul>

<p>&#160;</p>

<h2>Script</h2>

<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4">
  <div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4">
    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum1" style="color: #606060">   1:</span> clear;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum2" style="color: #606060">   2:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum3" style="color: #606060">   3:</span> <span style="color: #0000ff">function</span> Add-Crm-Sdk</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum4" style="color: #606060">   4:</span> {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum5" style="color: #606060">   5:</span>     <span style="color: #008000"># Load SDK assemblies</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum6" style="color: #606060">   6:</span>     Add-Type -Path <span style="color: #006080">&quot;$PSScriptRoot\Assemblies\Microsoft.Xrm.Sdk.dll&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum7" style="color: #606060">   7:</span>     Add-Type -Path <span style="color: #006080">&quot;$PSScriptRoot\Assemblies\Microsoft.Xrm.Client.dll&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum8" style="color: #606060">   8:</span>     Add-Type -Path <span style="color: #006080">&quot;$PSScriptRoot\Assemblies\Microsoft.Crm.Sdk.Proxy.dll&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum9" style="color: #606060">   9:</span> }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum10" style="color: #606060">  10:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum11" style="color: #606060">  11:</span> <span style="color: #0000ff">function</span> Get-Configuration()</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum12" style="color: #606060">  12:</span> {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum13" style="color: #606060">  13:</span>     $configFilePath = <span style="color: #006080">&quot;$PSScriptRoot\Configuration.xml&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum14" style="color: #606060">  14:</span>     $content = Get-Content $configFilePath;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum15" style="color: #606060">  15:</span>     <span style="color: #0000ff">return</span> [xml]$content;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum16" style="color: #606060">  16:</span> }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum17" style="color: #606060">  17:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum18" style="color: #606060">  18:</span> <span style="color: #0000ff">function</span> Get-WebResource</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum19" style="color: #606060">  19:</span> {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum20" style="color: #606060">  20:</span>      PARAM</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum21" style="color: #606060">  21:</span>     (</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum22" style="color: #606060">  22:</span>         [parameter(Mandatory=$true)]$name</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum23" style="color: #606060">  23:</span>     )</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum24" style="color: #606060">  24:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum25" style="color: #606060">  25:</span>     $query = New-Object -TypeName Microsoft.Xrm.Sdk.Query.QueryExpression -ArgumentList <span style="color: #006080">&quot;webresource&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum26" style="color: #606060">  26:</span>     $query.Criteria.AddCondition(<span style="color: #006080">&quot;name&quot;</span>, [Microsoft.Xrm.Sdk.Query.ConditionOperator]::Equal, $name);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum27" style="color: #606060">  27:</span>     $query.ColumnSet.AddColumn(<span style="color: #006080">&quot;content&quot;</span>);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum28" style="color: #606060">  28:</span>     $results = $service.RetrieveMultiple($query);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum29" style="color: #606060">  29:</span>     $records = $results.Entities;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum30" style="color: #606060">  30:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum31" style="color: #606060">  31:</span>     <span style="color: #0000ff">if</span>($records.Count <span style="color: #cc6633">-eq</span> 1)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum32" style="color: #606060">  32:</span>     {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum33" style="color: #606060">  33:</span>         <span style="color: #0000ff">return</span> $records[0];</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum34" style="color: #606060">  34:</span>     }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum35" style="color: #606060">  35:</span>     <span style="color: #0000ff">return</span> $null;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum36" style="color: #606060">  36:</span> }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum37" style="color: #606060">  37:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum38" style="color: #606060">  38:</span> Add-Crm-Sdk;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum39" style="color: #606060">  39:</span> $config = Get-Configuration;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum40" style="color: #606060">  40:</span> $publishXmlRequest = <span style="color: #006080">&quot;&lt;importexportxml&gt;&lt;webresources&gt;&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum41" style="color: #606060">  41:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum42" style="color: #606060">  42:</span> <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum43" style="color: #606060">  43:</span> <span style="color: #008000"># Crm Connection</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum44" style="color: #606060">  44:</span> <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum45" style="color: #606060">  45:</span> $crmConnectionString = $config.Configuration.CrmConnectionString;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum46" style="color: #606060">  46:</span> $crmConnection = [Microsoft.Xrm.Client.CrmConnection]::Parse($crmConnectionString);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum47" style="color: #606060">  47:</span> $service = New-Object -TypeName Microsoft.Xrm.Client.Services.OrganizationService -ArgumentList $crmConnection;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum48" style="color: #606060">  48:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum49" style="color: #606060">  49:</span> $d = Get-Date;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum50" style="color: #606060">  50:</span> Write-Host <span style="color: #006080">&quot;$d - Deploy WebResources start&quot;</span> -ForegroundColor Cyan;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum51" style="color: #606060">  51:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum52" style="color: #606060">  52:</span> <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum53" style="color: #606060">  53:</span> <span style="color: #008000"># Load last modified webresources and process files</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum54" style="color: #606060">  54:</span> <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum55" style="color: #606060">  55:</span> $deltaHours = [int]$config.Configuration.DeltaHours;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum56" style="color: #606060">  56:</span> $delta = $d.AddHours($deltaHours*-1);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum57" style="color: #606060">  57:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum58" style="color: #606060">  58:</span> $webResources = Get-ChildItem $config.Configuration.WebResourceFolderPath -recurse -include *.js, *.html, *.css, *.png, *.gif | where-object {$_.mode <span style="color: #cc6633">-notmatch</span> <span style="color: #006080">&quot;d&quot;</span>} | where-object {$_.lastwritetime <span style="color: #cc6633">-gt</span> $delta} </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum59" style="color: #606060">  59:</span> $current = 0;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum60" style="color: #606060">  60:</span> $total = $webResources.Count;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum61" style="color: #606060">  61:</span> <span style="color: #0000ff">foreach</span>($wr <span style="color: #0000ff">in</span> $webResources)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum62" style="color: #606060">  62:</span> {    </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum63" style="color: #606060">  63:</span>     $current++;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum64" style="color: #606060">  64:</span>     $percent = ($current/$total)*100;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum65" style="color: #606060">  65:</span>         </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum66" style="color: #606060">  66:</span>     <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum67" style="color: #606060">  67:</span>     <span style="color: #008000"># Handle prefix in file name</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum68" style="color: #606060">  68:</span>     <span style="color: #008000"># =======================================================</span></pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum69" style="color: #606060">  69:</span>     $webResourcePath = $wr.FullName.ToString();</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum70" style="color: #606060">  70:</span>     $webResourceName = $wr.Name.ToString();</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum71" style="color: #606060">  71:</span>     $extension = $_.Extension;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum72" style="color: #606060">  72:</span>     <span style="color: #0000ff">if</span>($webResourceName.StartsWith($config.Configuration.SolutionPrefix) <span style="color: #cc6633">-eq</span> $false)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum73" style="color: #606060">  73:</span>     {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum74" style="color: #606060">  74:</span>         $position = $webResourcePath.LastIndexOf($config.Configuration.SolutionPrefix);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum75" style="color: #606060">  75:</span>         <span style="color: #0000ff">if</span>($position <span style="color: #cc6633">-gt</span> 0)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum76" style="color: #606060">  76:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum77" style="color: #606060">  77:</span>             $webResourceName = $webResourcePath.Substring($position);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum78" style="color: #606060">  78:</span>             $webResourceName = $webResourceName.Replace(<span style="color: #006080">'\', '</span>/<span style="color: #006080">');</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum79" style="color: #606060">  79:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum80" style="color: #606060">  80:</span>     }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum81" style="color: #606060">  81:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum82" style="color: #606060">  82:</span>     Write-Host &quot; - WebResource '</span>$webResourceName<span style="color: #006080">' (Path : $webResourcePath) &quot; -NoNewline;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum83" style="color: #606060">  83:</span>     Write-Progress -Activity &quot;WebResource deployment&quot; -Status &quot;[$current/$total] WebResource '</span>$webResourceName<span style="color: #006080">' (Path : $webResourcePath)&quot; -PercentComplete $percent;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum84" style="color: #606060">  84:</span>              </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum85" style="color: #606060">  85:</span>     # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum86" style="color: #606060">  86:</span>     # Check webresource existence</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum87" style="color: #606060">  87:</span>     # If not exists, create it</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum88" style="color: #606060">  88:</span>     # Else update it</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum89" style="color: #606060">  89:</span>     # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum90" style="color: #606060">  90:</span>     $webResourceContentB64 = Get-Base64 $webResourcePath;    </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum91" style="color: #606060">  91:</span>     $webresource = Get-WebResource $webResourceName;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum92" style="color: #606060">  92:</span>     if($webresource -eq $null)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum93" style="color: #606060">  93:</span>     {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum94" style="color: #606060">  94:</span>         #region Webresource creation</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum95" style="color: #606060">  95:</span>         Write-Host &quot; not found!&quot; -ForegroundColor Yellow -NoNewline;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum96" style="color: #606060">  96:</span>         if(!$webResourceName.StartsWith($config.Configuration.SolutionPrefix))</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum97" style="color: #606060">  97:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum98" style="color: #606060">  98:</span>             Write-Host &quot;ignored!&quot; -ForegroundColor Gray;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum99" style="color: #606060">  99:</span>             continue;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum100" style="color: #606060"> 100:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum101" style="color: #606060"> 101:</span>         Write-Host &quot;=&gt; Create it ...&quot; -NoNewline;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum102" style="color: #606060"> 102:</span>                            </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum103" style="color: #606060"> 103:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum104" style="color: #606060"> 104:</span>         # Create webresource</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum105" style="color: #606060"> 105:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum106" style="color: #606060"> 106:</span>         $wr =  New-Object -TypeName Microsoft.Xrm.Sdk.Entity -ArgumentList &quot;webresource&quot;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum107" style="color: #606060"> 107:</span>         $wr[&quot;name&quot;] = $webResourceName;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum108" style="color: #606060"> 108:</span>         $wr[&quot;displayname&quot;] = $webResourceName;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum109" style="color: #606060"> 109:</span>         $wr[&quot;content&quot;] = Get-Base64 $webResourcePath;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum110" style="color: #606060"> 110:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum111" style="color: #606060"> 111:</span>         switch ($extension.ToLower())</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum112" style="color: #606060"> 112:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum113" style="color: #606060"> 113:</span>             &quot;.htm&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 1; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum114" style="color: #606060"> 114:</span>             &quot;.html&quot; { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 1; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum115" style="color: #606060"> 115:</span>             &quot;.css&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 2; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum116" style="color: #606060"> 116:</span>             &quot;.js&quot;   { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 3; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum117" style="color: #606060"> 117:</span>             &quot;.xml&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 4; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum118" style="color: #606060"> 118:</span>             &quot;.png&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 5; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum119" style="color: #606060"> 119:</span>             &quot;.jpg&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 6; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum120" style="color: #606060"> 120:</span>             &quot;.jpeg&quot; { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 6; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum121" style="color: #606060"> 121:</span>             &quot;.gif&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 7; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum122" style="color: #606060"> 122:</span>             &quot;.xap&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 8; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum123" style="color: #606060"> 123:</span>             &quot;.xsl&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 9; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum124" style="color: #606060"> 124:</span>             &quot;.ico&quot;  { $wr[&quot;webresourcetype&quot;] = New-Object -TypeName Microsoft.Xrm.Sdk.OptionSetValue -ArgumentList 10;}</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum125" style="color: #606060"> 125:</span>             default { Write-Host &quot;Unkown webresource extension : $extension&quot; -ForegroundColor Red; }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum126" style="color: #606060"> 126:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum127" style="color: #606060"> 127:</span>         $wr[&quot;webresourcetype&quot;] = [Microsoft.Xrm.Sdk.OptionSetValue]$wr[&quot;webresourcetype&quot;]; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum128" style="color: #606060"> 128:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum129" style="color: #606060"> 129:</span>         try</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum130" style="color: #606060"> 130:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum131" style="color: #606060"> 131:</span>             $id = $service.Create($wr);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum132" style="color: #606060"> 132:</span>             $publishXmlRequest += [string]::Concat(&quot;&lt;webresource&gt;&quot;, $id, &quot;&lt;/webresource&gt;&quot;); </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum133" style="color: #606060"> 133:</span>             Write-Host &quot;Done!&quot; -ForegroundColor Green -NoNewline;            </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum134" style="color: #606060"> 134:</span>             $publish = $true;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum135" style="color: #606060"> 135:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum136" style="color: #606060"> 136:</span>         catch [Exception]</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum137" style="color: #606060"> 137:</span>         {                </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum138" style="color: #606060"> 138:</span>             Write-Host &quot;Failed! [Error : $_.Exception]&quot; -ForegroundColor Red;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum139" style="color: #606060"> 139:</span>             continue;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum140" style="color: #606060"> 140:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum141" style="color: #606060"> 141:</span>         </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum142" style="color: #606060"> 142:</span>         </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum143" style="color: #606060"> 143:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum144" style="color: #606060"> 144:</span>         # Add webresource to CRM Solution</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum145" style="color: #606060"> 145:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum146" style="color: #606060"> 146:</span>         $solutionName = $config.Configuration.SolutionName;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum147" style="color: #606060"> 147:</span>         Write-Host &quot; =&gt; Add to solution '</span>$solutionName'...<span style="color: #006080">&quot; -NoNewline;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum148" style="color: #606060"> 148:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum149" style="color: #606060"> 149:</span>         $request = New-Object -TypeName Microsoft.Crm.Sdk.Messages.AddSolutionComponentRequest;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum150" style="color: #606060"> 150:</span>         $request.AddRequiredComponents = $false;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum151" style="color: #606060"> 151:</span>         $request.ComponentType = 61;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum152" style="color: #606060"> 152:</span>         $request.ComponentId = $id;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum153" style="color: #606060"> 153:</span>         $request.SolutionUniqueName = $solutionName;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum154" style="color: #606060"> 154:</span>         try</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum155" style="color: #606060"> 155:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum156" style="color: #606060"> 156:</span>             $response = $service.Execute($request);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum157" style="color: #606060"> 157:</span>             </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum158" style="color: #606060"> 158:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum159" style="color: #606060"> 159:</span>         catch [Exception]</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum160" style="color: #606060"> 160:</span>         {                </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum161" style="color: #606060"> 161:</span>             Write-Host &quot;</span>Failed! [Error : $_.Exception]<span style="color: #006080">&quot; -ForegroundColor Red;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum162" style="color: #606060"> 162:</span>             continue;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum163" style="color: #606060"> 163:</span>         }            </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum164" style="color: #606060"> 164:</span>         Write-Host &quot;</span>Done!<span style="color: #006080">&quot; -ForegroundColor Green;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum165" style="color: #606060"> 165:</span>         </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum166" style="color: #606060"> 166:</span>         #endregion Webresource creation</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum167" style="color: #606060"> 167:</span>     }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum168" style="color: #606060"> 168:</span>     else</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum169" style="color: #606060"> 169:</span>     {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum170" style="color: #606060"> 170:</span>         #region Webresource update</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum171" style="color: #606060"> 171:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum172" style="color: #606060"> 172:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum173" style="color: #606060"> 173:</span>         # Update webresource if content is different</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum174" style="color: #606060"> 174:</span>         # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum175" style="color: #606060"> 175:</span>         $crmWebResourceContent = $webresource.Attributes[&quot;</span>content<span style="color: #006080">&quot;].ToString();</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum176" style="color: #606060"> 176:</span>         if($crmWebResourceContent -ne $webResourceContentB64)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum177" style="color: #606060"> 177:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum178" style="color: #606060"> 178:</span>             $webresource[&quot;</span>content<span style="color: #006080">&quot;] = $webResourceContentB64;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum179" style="color: #606060"> 179:</span>             try</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum180" style="color: #606060"> 180:</span>             {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum181" style="color: #606060"> 181:</span>                 $service.Update($webresource);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum182" style="color: #606060"> 182:</span>                 $publishXmlRequest += [string]::Concat(&quot;</span>&lt;webresource&gt;<span style="color: #006080">&quot;, $webresource.Id, &quot;</span>&lt;/webresource&gt;<span style="color: #006080">&quot;);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum183" style="color: #606060"> 183:</span>                 $publish = $true;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum184" style="color: #606060"> 184:</span>                 Write-Host &quot;</span>updated!<span style="color: #006080">&quot; -ForegroundColor Green;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum185" style="color: #606060"> 185:</span>             }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum186" style="color: #606060"> 186:</span>             catch [Exception]</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum187" style="color: #606060"> 187:</span>             {                </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum188" style="color: #606060"> 188:</span>                 Write-Host &quot;</span>update failed! [Error : $_.Exception]<span style="color: #006080">&quot; -ForegroundColor Red;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum189" style="color: #606060"> 189:</span>                 continue;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum190" style="color: #606060"> 190:</span>             }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum191" style="color: #606060"> 191:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum192" style="color: #606060"> 192:</span>         else</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum193" style="color: #606060"> 193:</span>         {</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum194" style="color: #606060"> 194:</span>             Write-Host &quot;</span>ignored!<span style="color: #006080">&quot; -ForegroundColor Gray;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum195" style="color: #606060"> 195:</span>         }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum196" style="color: #606060"> 196:</span>         #endregion Webresource update</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum197" style="color: #606060"> 197:</span>     }    </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum198" style="color: #606060"> 198:</span> }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum199" style="color: #606060"> 199:</span> write-progress one one -completed;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum200" style="color: #606060"> 200:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum201" style="color: #606060"> 201:</span> # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum202" style="color: #606060"> 202:</span> # Publish modifications if necessary</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum203" style="color: #606060"> 203:</span> # =======================================================</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum204" style="color: #606060"> 204:</span>  if($publish)</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum205" style="color: #606060"> 205:</span> {    </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum206" style="color: #606060"> 206:</span>     $d = Get-Date;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum207" style="color: #606060"> 207:</span>     Write-Host &quot;</span>$d - Publish start<span style="color: #006080">&quot; -ForegroundColor Cyan;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum208" style="color: #606060"> 208:</span>     $publishXmlRequest += &quot;</span>&lt;/webresources&gt;&lt;/importexportxml&gt;<span style="color: #006080">&quot;;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum209" style="color: #606060"> 209:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum210" style="color: #606060"> 210:</span>     $publishRequest = New-Object -TypeName Microsoft.Crm.Sdk.Messages.PublishXmlRequest;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum211" style="color: #606060"> 211:</span>     $publishRequest.ParameterXml = $publishXmlRequest;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum212" style="color: #606060"> 212:</span>     $publishResponse = $service.Execute($publishRequest);</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum213" style="color: #606060"> 213:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum214" style="color: #606060"> 214:</span>     $d = Get-Date;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum215" style="color: #606060"> 215:</span>     Write-Host &quot;</span>$d - Publish stop<span style="color: #006080">&quot; -ForegroundColor Cyan;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum216" style="color: #606060"> 216:</span> }</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum217" style="color: #606060"> 217:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum218" style="color: #606060"> 218:</span> $d = Get-Date;</pre>
<!--CRLF-->

    <pre style="border-top-style: none; overflow: visible; font-size: 8pt; font-family: &#39;Courier New&#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4"><span id="lnum219" style="color: #606060"> 219:</span> Write-Host &quot;</span>$d - Deploy WebResources stop&quot; -ForegroundColor Cyan;</pre>
<!--CRLF--></div>
</div>

<p align="center"><font size="2"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/0045.CrmWebResourcesSync.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95/0045.CrmWebResourcesSync.zip" target="_blank"><strong>Download the full version</strong></a></font></p>]]></content:encoded>
    </item>
    <item>
      <title>Synchronize Dynamics CRM customizations to TFS Source Control</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/synchronize-dynamics-crm-customizations-to-tfs-source-control</link>
      <pubDate>Sat, 06 Jun 2015 02:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2015/06/06/synchronize-dynamics-crm-customizations-to-tfs-source-control/</guid>
      <description><![CDATA[&nbsp;
Context
A common problematic encountered in complex development projects is to handle CRM...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<h2>Context</h2>
<p>A common problematic encountered in complex development projects is to handle CRM customizations in the same way that we manage other sources (plugin classes, javascript webresources, &hellip;). <br />Source control integration provides the following advantages:</p>
<ul>
<li><strong>Backup</strong> : Capability to restore all your CRM customizations</li>
<li><strong>Versioning</strong> : Capability to get a previous version</li>
<li><strong>Comparison</strong> : Capability to visualize diff&eacute;rences</li>
<li><strong>History : </strong>Capability to track modifications</li>
</ul>
<p>3 years ago, I&rsquo;ve worked with <a href="https://mscrmtools.blogspot.fr/" target="_blank">Tanguy Touzard</a> on a batch that call differents applications in order to store a CRM solution to the TFS Source Control. <br />And, recently, I&lsquo;ve decided to rewritte it in order to optimize the process, minimize external applications dependencies and invoke CRM and TFS apis directly from Powershell. </p>
<p>This script use <a href="https://msdn.microsoft.com/fr-fr/library/jj602987.aspx" target="_blank">SolutionPackager</a> application to explode CRM customization XML file into structured file and folder tree.</p>
<h2>Prerequisites</h2>
<p>The script couldn&rsquo;t run properly without the following criterias:</p>
<ol>
<li>User who execute the script need to be :<ol>
<li>local admin (eventlog creation and write)</li>
<li>contributor on target TFS project</li>
</ol></li>
<li>CRM user specified in configuration file need to be system administrator (publih, solution export)</li>
<li>You should provide an <strong>Assemblies</strong>folder that contains<ol>
<li>CRM SDK assemblies :<ol>
<li>Microsoft.Xrm.Sdk.dll</li>
<li>Microsoft.Xrm.Client.dll</li>
<li>Microsoft.Crm.Sdk.Proxy.dll</li>
</ol></li>
<li>SolutionPackager.exe</li>
</ol></li>
<li>Script must be run with elevated privileges </li>
</ol>
<h2>Process</h2>
<p>The Powershell script realizes the following operations:</p>
<ol>
<li>Eventlog initialization to store process information or errors</li>
<li>Load TFS SDK</li>
<li>Load CRM SDK</li>
<li>Load configuration file</li>
<li>For each synch item<ol>
<li>Connect to TFS</li>
<li>Connect to CRM</li>
<li>Publish customization</li>
<li>For each solution<ol>
<li>Export solution</li>
<li>Unpack solution into TFS workspace folder</li>
<li>Checkin modifications to TFS</li>
</ol></li>
</ol></li>
</ol>
<p>All processing informations or errors are stored into a dedicated log.</p>
<h2>Configuration</h2>
<p>This script is based on a configuration file that allow to indicate differents CRM organizations, CRM solutions, TFS Project Collections</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/metablogapi/3438.Sans-titre_13707001.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-metablogapi/3438.Sans_2D00_titre_5F00_13707001.png"><img style="background-image: none; display: inline;" title="Sans titre" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/metablogapi/4807.Sans-titre_thumb_77CE74BB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-metablogapi/4807.Sans_2D00_titre_5F00_thumb_5F00_77CE74BB.png" alt="Sans titre" width="514" height="329" border="0" /></a>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff;">Each SyncItem represent a synchonization between CRM and TFS.</span></p>
<ul>
<li><span style="background-color: #ffffff;"><strong>OutputPath</strong> : Temporary folder where exported CRM solution is stored</span></li>
<li><span style="background-color: #ffffff;">CRM &gt; </span><span style="background-color: #ffffff;"><strong>ConnectionString</strong> : Connection to CRM organization (More info : </span><a href="https://msdn.microsoft.com/en-us/library/gg695810.aspx"><span style="background-color: #ffffff;">https://msdn.microsoft.com/en-us/library/gg695810.aspx</span></a><span style="background-color: #ffffff;">)</span></li>
<li><span style="background-color: #ffffff;">CRM &gt; Solutions &gt; Solution &gt; <strong>Name</strong> : Unique name of the CRM solution to export</span></li>
<li>TFS &gt; <strong>CollectionUrl</strong> : Url of the target project collection</li>
<li>TFS &gt; <strong>WorkspaceFolder</strong> : Path to the local TFS folder</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Script</h2>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; height: 305px; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; padding: 0px;">
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> clear;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span> <span style="color: #0000ff;">function</span> Add-Crm-Sdk</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span>     <span style="color: #008000;"># Load SDK assemblies</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Sdk.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Client.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span>     Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Crm.Sdk.Proxy.dll"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum9" style="color: #606060;"> 9:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum10" style="color: #606060;"> 10:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum11" style="color: #606060;"> 11:</span> <span style="color: #0000ff;">function</span> Add-Tfs-Sdk</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum12" style="color: #606060;"> 12:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum13" style="color: #606060;"> 13:</span>     <span style="color: #008000;"># Load TFS SDK assemblies</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum14" style="color: #606060;"> 14:</span>     [void][System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080;">"Microsoft.TeamFoundation"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum15" style="color: #606060;"> 15:</span>     [void][System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080;">"Microsoft.TeamFoundation.Common"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum16" style="color: #606060;"> 16:</span>     [void][System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080;">"Microsoft.TeamFoundation.Client"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum17" style="color: #606060;"> 17:</span>     [void][System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080;">"Microsoft.TeamFoundation.VersionControl.Client"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum18" style="color: #606060;"> 18:</span>     [void][System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080;">"Microsoft.TeamFoundation.VersionControl.Common"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum19" style="color: #606060;"> 19:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum20" style="color: #606060;"> 20:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum21" style="color: #606060;"> 21:</span> $logName = <span style="color: #006080;">"MCS.Scripts"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum22" style="color: #606060;"> 22:</span> $logSource = <span style="color: #006080;">"CrmToTfs"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum23" style="color: #606060;"> 23:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum24" style="color: #606060;"> 24:</span> <span style="color: #0000ff;">function</span> Create-Log()</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum25" style="color: #606060;"> 25:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum26" style="color: #606060;"> 26:</span>     $logFileExists = Get-EventLog -list | Where-Object {$_.Log <span style="color: #cc6633;">-eq</span> $logName } </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum27" style="color: #606060;"> 27:</span>     <span style="color: #0000ff;">if</span> (!$logFileExists) </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum28" style="color: #606060;"> 28:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum29" style="color: #606060;"> 29:</span>         New-EventLog -LogName $logName -Source $logSource;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum30" style="color: #606060;"> 30:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum31" style="color: #606060;"> 31:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum32" style="color: #606060;"> 32:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum33" style="color: #606060;"> 33:</span> <span style="color: #0000ff;">function</span> Log-Error($message)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum34" style="color: #606060;"> 34:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum35" style="color: #606060;"> 35:</span>     Write-EventLog -LogName $logName -Source $logSource -EntryType Error -Message $message -EventId 0;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum36" style="color: #606060;"> 36:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum37" style="color: #606060;"> 37:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum38" style="color: #606060;"> 38:</span> <span style="color: #0000ff;">function</span> Log-Info($message)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum39" style="color: #606060;"> 39:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum40" style="color: #606060;"> 40:</span>     Write-EventLog -LogName $logName -Source $logSource -EntryType Information -Message $message -EventId 0;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum41" style="color: #606060;"> 41:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum42" style="color: #606060;"> 42:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum43" style="color: #606060;"> 43:</span> <span style="color: #0000ff;">function</span> Get-Configuration()</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum44" style="color: #606060;"> 44:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum45" style="color: #606060;"> 45:</span>     $configFilePath = <span style="color: #006080;">"$PSScriptRoot\Configuration.xml"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum46" style="color: #606060;"> 46:</span>     $content = Get-Content $configFilePath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum47" style="color: #606060;"> 47:</span>     <span style="color: #0000ff;">return</span> [xml]$content;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum48" style="color: #606060;"> 48:</span> }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum49" style="color: #606060;"> 49:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum50" style="color: #606060;"> 50:</span> Create-Log;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum51" style="color: #606060;"> 51:</span> Add-Tfs-Sdk;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum52" style="color: #606060;"> 52:</span> Add-Crm-Sdk;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum53" style="color: #606060;"> 53:</span> $config = Get-Configuration;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum54" style="color: #606060;"> 54:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum55" style="color: #606060;"> 55:</span> <span style="color: #0000ff;">foreach</span>($syncItem <span style="color: #0000ff;">in</span> $config.Configuration.SyncItems.SyncItem)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum56" style="color: #606060;"> 56:</span> {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum57" style="color: #606060;"> 57:</span>     $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum58" style="color: #606060;"> 58:</span>     $syncItemName = $syncItem.Name;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum59" style="color: #606060;"> 59:</span>     $workspacePath = $syncItem.Tfs.WorkSpaceFolder;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum60" style="color: #606060;"> 60:</span>     Write-Host <span style="color: #006080;">"$d - Crm To Tfs synchronization start for '$syncItemName'"</span> -ForegroundColor Cyan;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum61" style="color: #606060;"> 61:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum62" style="color: #606060;"> 62:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum63" style="color: #606060;"> 63:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum64" style="color: #606060;"> 64:</span>     <span style="color: #008000;"># TFS Connection</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum65" style="color: #606060;"> 65:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum66" style="color: #606060;"> 66:</span>     $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum67" style="color: #606060;"> 67:</span>     Write-Host <span style="color: #006080;">" &gt; $d : Checking TFS connection ..."</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum68" style="color: #606060;"> 68:</span>     $tfsUrl = $syncItem.Tfs.CollectionUrl;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum69" style="color: #606060;"> 69:</span>     $tfsCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsUrl);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum70" style="color: #606060;"> 70:</span>     $tfsCollection.EnsureAuthenticated();</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum71" style="color: #606060;"> 71:</span>     <span style="color: #0000ff;">if</span>($tfsCollection.HasAuthenticated)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum72" style="color: #606060;"> 72:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum73" style="color: #606060;"> 73:</span>         Write-Host <span style="color: #006080;">"Authenticated to TFS!"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum74" style="color: #606060;"> 74:</span>         Log-Info <span style="color: #006080;">"Checking TFS connection ... Authenticated to TFS!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum75" style="color: #606060;"> 75:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum76" style="color: #606060;"> 76:</span>     <span style="color: #0000ff;">else</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum77" style="color: #606060;"> 77:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum78" style="color: #606060;"> 78:</span>         Write-Host <span style="color: #006080;">"Not authenticated to TFS ..."</span> -ForegroundColor Red;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum79" style="color: #606060;"> 79:</span>         Log-Error <span style="color: #006080;">"Checking TFS connection ... Not authenticated to TFS"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum80" style="color: #606060;"> 80:</span>         <span style="color: #0000ff;">return</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum81" style="color: #606060;"> 81:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum82" style="color: #606060;"> 82:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum83" style="color: #606060;"> 83:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum84" style="color: #606060;"> 84:</span>     <span style="color: #008000;"># Crm Connection</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum85" style="color: #606060;"> 85:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum86" style="color: #606060;"> 86:</span>     $crmConnectionString = $syncItem.Crm.ConnectionString;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum87" style="color: #606060;"> 87:</span>     $crmConnection = [Microsoft.Xrm.Client.CrmConnection]::Parse($crmConnectionString);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum88" style="color: #606060;"> 88:</span>     $service = New-Object -TypeName Microsoft.Xrm.Client.Services.OrganizationService -ArgumentList $crmConnection;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum89" style="color: #606060;"> 89:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum90" style="color: #606060;"> 90:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum91" style="color: #606060;"> 91:</span>     <span style="color: #008000;"># Publish</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum92" style="color: #606060;"> 92:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum93" style="color: #606060;"> 93:</span>     $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum94" style="color: #606060;"> 94:</span>     Write-Host <span style="color: #006080;">" &gt; $d : Publishing customizations ..."</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum95" style="color: #606060;"> 95:</span>     $publishRequest = New-Object -TypeName Microsoft.Crm.Sdk.Messages.PublishAllXmlRequest;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum96" style="color: #606060;"> 96:</span>     try</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum97" style="color: #606060;"> 97:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum98" style="color: #606060;"> 98:</span>         $publishResponse = $service.Execute($publishRequest);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum99" style="color: #606060;"> 99:</span>         Write-Host <span style="color: #006080;">"done!"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum100" style="color: #606060;"> 100:</span>         Log-Info <span style="color: #006080;">"Publishing customizations ... done!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum101" style="color: #606060;"> 101:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum102" style="color: #606060;"> 102:</span>     catch [Exception]</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum103" style="color: #606060;"> 103:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum104" style="color: #606060;"> 104:</span>         Write-Host <span style="color: #006080;">"failed! [Error : $_.Exception]"</span> -ForegroundColor Red;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum105" style="color: #606060;"> 105:</span>         Log-Error <span style="color: #006080;">"Publishing customizations ... failed![Error : $_.Exception]"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum106" style="color: #606060;"> 106:</span>         <span style="color: #0000ff;">return</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum107" style="color: #606060;"> 107:</span>     }  </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum108" style="color: #606060;"> 108:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum109" style="color: #606060;"> 109:</span>     </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum110" style="color: #606060;"> 110:</span>     $outputPath = $syncItem.OutputPath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum111" style="color: #606060;"> 111:</span>     $syncItemPath = [System.IO.Path]::Combine($outputPath, $syncItem.Name);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum112" style="color: #606060;"> 112:</span>    </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum113" style="color: #606060;"> 113:</span>     New-Item -ErrorAction Ignore -ItemType directory -Path $syncItemPath;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum114" style="color: #606060;"> 114:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum115" style="color: #606060;"> 115:</span>     <span style="color: #0000ff;">foreach</span>($solution <span style="color: #0000ff;">in</span> $syncItem.Crm.Solutions.Solution)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum116" style="color: #606060;"> 116:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum117" style="color: #606060;"> 117:</span>         <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum118" style="color: #606060;"> 118:</span>         <span style="color: #008000;"># Export solution</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum119" style="color: #606060;"> 119:</span>         <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum120" style="color: #606060;"> 120:</span>     </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum121" style="color: #606060;"> 121:</span>         $solutionToExport = $solution.Name;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum122" style="color: #606060;"> 122:</span>         $solutionPath = [System.IO.Path]::Combine($syncItemPath, <span style="color: #006080;">"$solutionToExport.zip"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum123" style="color: #606060;"> 123:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum124" style="color: #606060;"> 124:</span>         $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum125" style="color: #606060;"> 125:</span>         Write-Host <span style="color: #006080;">" &gt; $d : Exporting solution ($solutionToExport) to path '$solutionPath' ... "</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum126" style="color: #606060;"> 126:</span>         $request = New-Object -TypeName Microsoft.Crm.Sdk.Messages.ExportSolutionRequest;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum127" style="color: #606060;"> 127:</span>         $request.SolutionName = $solutionToExport;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum128" style="color: #606060;"> 128:</span>         $request.Managed = $false;    </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum129" style="color: #606060;"> 129:</span>         $request.ExportCalendarSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum130" style="color: #606060;"> 130:</span>         $request.ExportCustomizationSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum131" style="color: #606060;"> 131:</span>         $request.ExportEmailTrackingSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum132" style="color: #606060;"> 132:</span>         $request.ExportAutoNumberingSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum133" style="color: #606060;"> 133:</span>         $request.ExportIsvConfig = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum134" style="color: #606060;"> 134:</span>         $request.ExportOutlookSynchronizationSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum135" style="color: #606060;"> 135:</span>         $request.ExportGeneralSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum136" style="color: #606060;"> 136:</span>         $request.ExportMarketingSettings = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum137" style="color: #606060;"> 137:</span>         $request.ExportRelationshipRoles = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum138" style="color: #606060;"> 138:</span>         try</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum139" style="color: #606060;"> 139:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum140" style="color: #606060;"> 140:</span>             $response = $service.Execute($request);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum141" style="color: #606060;"> 141:</span>             [System.IO.File]::WriteAllBytes($solutionPath, $response.ExportSolutionFile);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum142" style="color: #606060;"> 142:</span>             Write-Host <span style="color: #006080;">"done!"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum143" style="color: #606060;"> 143:</span>             Log-Info <span style="color: #006080;">"Exporting solution ... done!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum144" style="color: #606060;"> 144:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum145" style="color: #606060;"> 145:</span>         catch [Exception]</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum146" style="color: #606060;"> 146:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum147" style="color: #606060;"> 147:</span>             Write-Host <span style="color: #006080;">"failed! [Error : $_.Exception]"</span> -ForegroundColor Red;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum148" style="color: #606060;"> 148:</span>             Log-Error <span style="color: #006080;">"Exporting solution ... failed! [Error : $_.Exception]"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum149" style="color: #606060;"> 149:</span>             <span style="color: #0000ff;">return</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum150" style="color: #606060;"> 150:</span>         }            </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum151" style="color: #606060;"> 151:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum152" style="color: #606060;"> 152:</span>         <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum153" style="color: #606060;"> 153:</span>         <span style="color: #008000;"># Unpack solution</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum154" style="color: #606060;"> 154:</span>         <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum155" style="color: #606060;"> 155:</span>         $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum156" style="color: #606060;"> 156:</span>                 </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum157" style="color: #606060;"> 157:</span>         $syncItemWorkspacePath = [System.IO.Path]::Combine($workspacePath, $syncItem.Name);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum158" style="color: #606060;"> 158:</span>         $solutionWorkspacePath = [System.IO.Path]::Combine($syncItemWorkspacePath, $solution.Name);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum159" style="color: #606060;"> 159:</span>         </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum160" style="color: #606060;"> 160:</span>         $logPath = $solutionPath.Replace(<span style="color: #006080;">".zip"</span>, <span style="color: #006080;">"-SolutionPackager.log"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum161" style="color: #606060;"> 161:</span>         Write-Host <span style="color: #006080;">" &gt; $d : Unpacking solution to path '$solutionWorkspacePath' ... "</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum162" style="color: #606060;"> 162:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum163" style="color: #606060;"> 163:</span>         $processArgs = [String]::Concat(<span style="color: #006080;">'/action:Extract /zipfile:"'</span>, $solutionPath, <span style="color: #006080;">'" /folder:"'</span>, $solutionWorkspacePath, <span style="color: #006080;">'" /clobber /errorlevel:Verbose /log:"'</span>, $logPath, <span style="color: #006080;">'" /allowDelete:Yes /allowWrite:Yes'</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum164" style="color: #606060;"> 164:</span>         $<span style="color: #0000ff;">process</span> = <span style="color: #006080;">"$PSScriptRoot\Assemblies\SolutionPackager.exe"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum165" style="color: #606060;"> 165:</span>         Start-Process -FilePath  $<span style="color: #0000ff;">process</span> -ArgumentList $processArgs -Wait -Verbose -Debug;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum166" style="color: #606060;"> 166:</span>         Write-Host <span style="color: #006080;">"done!"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum167" style="color: #606060;"> 167:</span>         Log-Info <span style="color: #006080;">"Unpacking solution ... done!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum168" style="color: #606060;"> 168:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum169" style="color: #606060;"> 169:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum170" style="color: #606060;"> 170:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum171" style="color: #606060;"> 171:</span>     <span style="color: #008000;"># Checkin modifications to TFS Source Control</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum172" style="color: #606060;"> 172:</span>     <span style="color: #008000;"># =======================================================</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum173" style="color: #606060;"> 173:</span>     $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum174" style="color: #606060;"> 174:</span>     Write-Host <span style="color: #006080;">" &gt; $d : Checking pending changes to TFS ... "</span> -NoNewline;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum175" style="color: #606060;"> 175:</span>     $workspaceInfo = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetLocalWorkspaceInfo($workspacePath);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum176" style="color: #606060;"> 176:</span>     $workspace = $workspaceInfo.GetWorkspace($tfsCollection);    </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum177" style="color: #606060;"> 177:</span>     $workspace.PendAdd($workspacePath, $true);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum178" style="color: #606060;"> 178:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum179" style="color: #606060;"> 179:</span>     $pendingChanges = $workspace.GetPendingChanges() | Where-Object {$_.LocalItem.StartsWith($solutionWorkspacePath) };</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum180" style="color: #606060;"> 180:</span>     try</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum181" style="color: #606060;"> 181:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum182" style="color: #606060;"> 182:</span>         $pendingChangesCount = $pendingChanges.Count;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum183" style="color: #606060;"> 183:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum184" style="color: #606060;"> 184:</span>         <span style="color: #008000;"># Ignore solution.xml if it's the only modifications</span></pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum185" style="color: #606060;"> 185:</span>         $processCheckin = $true;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum186" style="color: #606060;"> 186:</span>         <span style="color: #0000ff;">if</span>($pendingChangesCount <span style="color: #cc6633;">-eq</span> 0)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum187" style="color: #606060;"> 187:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum188" style="color: #606060;"> 188:</span>             $processCheckin = $false;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum189" style="color: #606060;"> 189:</span>             Write-Host <span style="color: #006080;">"ignored! (nothing to checkin)"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum190" style="color: #606060;"> 190:</span>             Log-Info <span style="color: #006080;">"Checking-in modifications to TFS... ignored (nothing to checkin)!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum191" style="color: #606060;"> 191:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum192" style="color: #606060;"> 192:</span>         <span style="color: #0000ff;">elseif</span>($pendingChangesCount <span style="color: #cc6633;">-eq</span> 1)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum193" style="color: #606060;"> 193:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum194" style="color: #606060;"> 194:</span>             $pendingChange = $pendingChanges | Select-Object -First 1;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum195" style="color: #606060;"> 195:</span>             <span style="color: #0000ff;">if</span>($pendingChange.LocalItem.Contains(<span style="color: #006080;">"Solution.xml"</span>))</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum196" style="color: #606060;"> 196:</span>             {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum197" style="color: #606060;"> 197:</span>                 $processCheckin = $false;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum198" style="color: #606060;"> 198:</span>                 Write-Host <span style="color: #006080;">"ignored! (solution.xml)"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum199" style="color: #606060;"> 199:</span>                 Log-Info <span style="color: #006080;">"Checking-in modifications to TFS... ignored (solution.xml)!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum200" style="color: #606060;"> 200:</span>                 $workspace.Undo($pendingChanges);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum201" style="color: #606060;"> 201:</span>             }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum202" style="color: #606060;"> 202:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum203" style="color: #606060;"> 203:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum204" style="color: #606060;"> 204:</span>         <span style="color: #0000ff;">if</span>($processCheckin)</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum205" style="color: #606060;"> 205:</span>         {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum206" style="color: #606060;"> 206:</span>             $result = $workspace.CheckIn($pendingChanges, <span style="color: #006080;">"Crm To Tfs Synchronization : $pendingChangesCount item(s)"</span>);</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum207" style="color: #606060;"> 207:</span>             Write-Host <span style="color: #006080;">"done! (ChangeSet : $result)"</span> -ForegroundColor Green;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum208" style="color: #606060;"> 208:</span>             Log-Info <span style="color: #006080;">"Checking-in modifications to TFS... done!"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum209" style="color: #606060;"> 209:</span>         }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum210" style="color: #606060;"> 210:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum211" style="color: #606060;"> 211:</span>     catch [Exception]</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum212" style="color: #606060;"> 212:</span>     {</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum213" style="color: #606060;"> 213:</span>         Write-Host <span style="color: #006080;">"failed! [Error : $_.Exception]"</span> -ForegroundColor Red;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum214" style="color: #606060;"> 214:</span>         Log-Error <span style="color: #006080;">"Checking-in modifications to TFS... failed! [Error : $_.Exception]"</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum215" style="color: #606060;"> 215:</span>         <span style="color: #0000ff;">return</span>;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum216" style="color: #606060;"> 216:</span>     }</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum217" style="color: #606060;"> 217:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum218" style="color: #606060;"> 218:</span>     $d = Get-Date;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum219" style="color: #606060;"> 219:</span>     Write-Host <span style="color: #006080;">"$d - Crm To Tfs synchronization stop for '$syncItemName'"</span> -ForegroundColor Cyan;</pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum220" style="color: #606060;"> 220:</span>&nbsp; </pre>
<!--CRLF-->
<pre style="overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; padding: 0px;"><span id="lnum221" style="color: #606060;"> 221:</span> }</pre>
<!--CRLF--></div>
</div>
<p align="center"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/5023.CrmTfsSync.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95/5023.CrmTfsSync.zip" target="_blank"><strong><span style="font-size: x-small;">Download the full version</span></strong></a></p>
<p>&nbsp;</p>
<h2>Usage</h2>
<p>The script could be run manually or triggered by a windows scheduled task (More info : <a title="https://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx" href="https://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx">https://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx</a>)</p>
<p>You could also run it with Azure Automation or a TFS build, but you need to host the TFS and CRM SDK assemblies in a centralized storage.</p>
<p>&nbsp;</p>
<p>Have fun!</p>]]></content:encoded>
    </item>
    <item>
      <title>CRM Data Management With PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/crm-data-management-with-powershell</link>
      <pubDate>Sat, 28 Jun 2014 01:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2014/06/28/crm-data-management-with-powershell/</guid>
      <description><![CDATA[As you know, it is not supported to manipulate CRM data with SQL, you need to use CRM WebServices...]]></description>
      <content:encoded><![CDATA[<p>As you know, it is not supported to manipulate CRM data with SQL, you need to use CRM WebServices with CRM SDK.</p>
<p>You can write console applications that handle data operation but it is not very flexible for quick operations.</p>
<p>PowerShell is a great solution for multiple reasons :</p>
<ol>
<li>You can edit and run script on windows server</li>
<li>No compilation</li>
<li>Well documented</li>
<li>Can execute .NET code</li>
</ol>
<p>OK, that was the boring theory introduction, let's go with code examples ! :)</p>
<p><strong>Load SDK assemblies</strong></p>
<p>In order to have access to CRM classes, you need to load CRM SDK assemblies to Powershell script :</p>
<div id="codeSnippetWrapper">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 97%; height: 112px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Add-Crm-Sdk<br />{<br />    <span style="color: #008000;"># Load SDK assemblies</span><br />    Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Sdk.dll"</span>;<br />    Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Xrm.Client.dll"</span>;<br />    Add-Type -Path <span style="color: #006080;">"$PSScriptRoot\Assemblies\Microsoft.Crm.Sdk.Proxy.dll"</span>;<br />}</pre>
</div>
<p><strong>Build CRM connection and instantiate OrganizationService</strong></p>
<p>Thanks to CrmConnection.Parse method we can easily connect to every deployment type for organization :</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97%; height: 202px; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Get-Crm-Connection<br />{<br />    <span style="color: #008000;"># Configure CRM connection</span><br />    $url = <span style="color: #006080;">"https://organization.domain.com"</span>;<br />    $login = <span style="color: #006080;">"user@domain.com"</span>;<br />    $pwd = <span style="color: #006080;">"Pass@word1"</span>;<br />    <br />    $crmConnection = [Microsoft.Xrm.Client.CrmConnection]::Parse(<span style="color: #006080;">"Url=$url; Username=$login; Password=$pwd"</span>);<br />    <span style="color: #0000ff;">return</span> $crmConnection;<br />}</pre>
</div>
<p>And then you can instantiate OrganizationService with CrmConnection object :</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">$crmConnection = Get-Crm-Connection;<br /><br /><span style="color: #008000;"># Instantiate Organization Service</span><br />$service = New-Object -TypeName Microsoft.Xrm.Client.Services.OrganizationService -ArgumentList $crmConnection;</pre>
</div>
<p><strong>Retrieve data from CRM</strong></p>
<p>Here&rsquo;s an example of RetrieveMultiple with paging :</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97%; height: 760px; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 750px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Get-Multiple-Records<br />{<br />    PARAM<br />    (<br />        [parameter(Mandatory=$true)]$service,<br />        [parameter(Mandatory=$true)]$query<br />    )<br /><br />    $pageNumber = 1;<br /><br />    $query.PageInfo = New-Object -TypeName Microsoft.Xrm.Sdk.Query.PagingInfo;<br />    $query.PageInfo.PageNumber = $pageNumber;<br />    $query.PageInfo.Count = 1000;<br />    $query.PageInfo.PagingCookie = $null;<br /><br />    $records = $null;<br />    <span style="color: #0000ff;">while</span>($true)<br />    {<br />        $results = $service.RetrieveMultiple($query);<br />                <br />        Write-Progress -Activity <span style="color: #006080;">"Retrieve data from CRM"</span> -Status <span style="color: #006080;">"Processing record page : $pageNumber"</span> -PercentComplete -1;<br />        <span style="color: #0000ff;">if</span>($results.Entities.Count <span style="color: #cc6633;">-gt</span> 0)<br />        {<br />            <span style="color: #0000ff;">if</span>($records <span style="color: #cc6633;">-eq</span> $null)<br />            {<br />                $records = $results.Entities;<br />            }<br />            <span style="color: #0000ff;">else</span><br />            {<br />                $records.AddRange($results.Entities);<br />            }<br />        }<br />        <span style="color: #0000ff;">if</span>($results.MoreRecords)<br />        {<br />            $pageNumber++;<br />            $query.PageInfo.PageNumber = $pageNumber;<br />            $query.PageInfo.PagingCookie = $results.PagingCookie;<br />        }<br />        <span style="color: #0000ff;">else</span><br />        {<br />            <span style="color: #0000ff;">break</span>;<br />        }<br />    }<br />    <span style="color: #0000ff;">return</span> $records;<br />}</pre>
</div>
<div id="codeSnippetWrapper"><br />This method can be called like this :</div>
<div>&nbsp;</div>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97%; height: 202px; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Get-Accounts<br />{<br />    $query = New-Object -TypeName Microsoft.Xrm.Sdk.Query.QueryExpression -ArgumentList <span style="color: #006080;">"account"</span>;<br />    $query.ColumnSet.AddColumn(<span style="color: #006080;">"name"</span>);<br />    $query.Criteria.AddCondition(<span style="color: #006080;">"accountnumber"</span>, [Microsoft.Xrm.Sdk.Query.ConditionOperator]::NotNull);<br />    $query.AddOrder(<span style="color: #006080;">"name"</span>, [Microsoft.Xrm.Sdk.Query.OrderType]::Ascending);<br /><br />    $records = Get-Multiple-Records $service $query;<br />    <span style="color: #0000ff;">return</span> $records;<br />}</pre>
</div>
<div id="codeSnippetWrapper"><br />In this example, we will retrieve all Accounts that have an accountnumber defined and order by name.</div>
<div>&nbsp;</div>
<div>Here&rsquo;s an example of record search :</div>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97%; height: 360px; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 350px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Get-Account<br />{<br />     PARAM<br />    (<br />        [parameter(Mandatory=$true)]$accountNumber<br />    )<br /><br />    $query = New-Object -TypeName Microsoft.Xrm.Sdk.Query.QueryExpression -ArgumentList <span style="color: #006080;">"account"</span>;<br />    $query.Criteria.AddCondition(<span style="color: #006080;">"accountnumber"</span>, [Microsoft.Xrm.Sdk.Query.ConditionOperator]::Equal, $accountNumber);<br />    $query.ColumnSet.AddColumn(<span style="color: #006080;">"fullname"</span>);<br />    $results = $service.RetrieveMultiple($query);<br />    $records = $results.Entities;<br /><br />    <span style="color: #0000ff;">if</span>($records.Count <span style="color: #cc6633;">-eq</span> 1)<br />    {<br />        <span style="color: #0000ff;">return</span> $records[0];<br />    }<br />    Write-Host -ForegroundColor Red <span style="color: #006080;">"Record not found : $id"</span><br />    <span style="color: #0000ff;">return</span> $null;<br />}</pre>
</div>
<div id="codeSnippetWrapper">This will return account record with requested accountnumber given in method parameter.</div>
<div>&nbsp;</div>
<div><strong>Process results</strong></div>
<p>When you retrieve a collection of record from Get-Multiple-Records method, you can process results with a simple foreach instruction. <br />In order to display process progression, you can use Write-Progress snippet.</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97%; height: 360px; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 350px; background-color: #f4f4f4;">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><br />$accounts = Get-accounts;<br />$current = 0;<br />$total = $accounts.Count;<br /><br /><span style="color: #0000ff;">foreach</span>($account <span style="color: #0000ff;">in</span> $accounts)<br />{<br />    $accountName = $account.Attributes[<span style="color: #006080;">"name"</span>];<br />    $current++;<br />    $percent = ($current/$total)*100;<br />    <br />    Write-Progress -Activity <span style="color: #006080;">"Account data management"</span> -Status <span style="color: #006080;">"[$current/$total] Processing account '$accountName' ..."</span> -PercentComplete $percent;</pre>
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    Write-Host "Account : <span style="color: #006080;">$accountName"</span> -ForegroundColor Yellow;       <br />}</pre>
</div>
<div id="codeSnippetWrapper"><br /><strong>Create record</strong></div>
<div>&nbsp;</div>
<div>The only difference with C# is Powershell syntax for object initialization :</div>
<div>
<p><span style="color: #008000;"> <br /># Instanciate new account Entity object</span> <br />$account = New-Object -TypeName Microsoft.Xrm.Sdk.Entity -ArgumentList <span style="color: #006080;">"account"</span>; <br />$account[<span style="color: #006080;">"name"</span>] = <span style="color: #006080;">"PowerShell is great!"</span>; <br /> <br /><span style="color: #008000;"># Create an account and retrieve new ID</span> <br />$id = $service.Create($account);</p>
</div>
<div><br /><strong>Update record</strong></div>
<div>
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 97%; height: 144px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #008000;"><br /># Instanciate new account Entity object</span><br />$accountToUpdate = New-Object -TypeName Microsoft.Xrm.Sdk.Entity -ArgumentList <span style="color: #006080;">"account"</span>;<br />$accountToUpdate.Id = $id;<br />$accountToUpdate[<span style="color: #006080;">"name"</span>] = <span style="color: #006080;">"CRM and PowerShell are greats!"</span><br /><br /><span style="color: #008000;"># Update account</span><br />$service.Update($accountToUpdate);</pre>
</div>
<div>&nbsp;</div>
<div><strong>Assign record</strong></div>
<div>The reusable method :</div>
<div>&nbsp;</div>
<div id="codeSnippetWrapper">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 97%; height: 224px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #0000ff;">function</span> Assign-Record<br />{<br />    PARAM<br />    (<br />        [parameter(Mandatory=$true)]$recordReference,<br />        [parameter(Mandatory=$true)]$ownerReference<br />    )<br /><br />    $assignRequest = New-Object -TypeName Microsoft.Crm.Sdk.Messages.AssignRequest;<br />    $assignRequest.Assignee = $ownerReference;<br />    $assignRequest.Target = $recordReference;<br /><br />    $result = $service.Execute($assignRequest);<br />}</pre>
<br />And the call with our account example :</div>
<div>&nbsp;</div>
<div id="codeSnippetWrapper">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 97%; height: 16px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">Assign-Record $account.ToEntityReference() $me.ToEntityReference();</pre>
<br /><strong>Delete record</strong></div>
<div id="codeSnippetWrapper">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 97%; height: 32px; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #008000;"># Delete account</span><br />$service.Delete(<span style="color: #006080;">"account"</span>, $id);</pre>
</div>
<div><strong>OptionSet type</strong></div>
<p>I have serialization problem on record create / update when giving an OptionSetValue to record attribute with the following error :</p>
<p>&laquo;The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter <br /><a href="https://schemas.microsoft.com/xrm/2011/Contracts/Services:entity">https://schemas.microsoft.com/xrm/2011/Contracts/Services:entity</a>. The InnerException message was 'Error in line 1 position 11940. Element <br /> '<a href="https://schemas.datacontract.org/2004/07/System.Collections.Generic:value'">https://schemas.datacontract.org/2004/07/System.Collections.Generic:value'</a> contains data from a type that maps to the name 'System.Management.Automation:PSObject'. The deserializer has no <br />knowledge of any type that maps to this name. Consider changing the implementation of the ResolveName method on your DataContractResolver to return a non-null value for name 'PSObject' and <br />namespace 'System.Management.Automation'.'.&nbsp; Please see InnerException for more details.&raquo;</p>
<p>This error is link to Powershell conversion of object that is not understand by CRM WebService.</p>
<p>You need to explicitely cast the OptionSetValue, like this :</p>
<div id="codeSnippetWrapper">
<pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">$optionSetValue = New-Object -TypeName  <span style="color: #006080;">"Microsoft.Xrm.Sdk.OptionSetValue"</span> -ArgumentList 1;<br />$account[<span style="color: #006080;">"new_samplecode"</span>]= [Microsoft.Xrm.Sdk.OptionSetValue] $optionSetValue;</pre>
</div>
<div>&nbsp;</div>
<div>Don&rsquo;t hesitate to share your script snippets !</div>
<div>&nbsp;</div>
<div>Enjoy!</div>]]></content:encoded>
    </item>
    <item>
      <title>Tool Release : CRM Solution CommandLine Helper</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/tool-release-crm-solution-commandline-helper</link>
      <pubDate>Thu, 27 Jun 2013 04:49:06 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2013/06/27/tool-release-crm-solution-commandline-helper/</guid>
      <description><![CDATA[Hi,  I'm pleased to release the first version of CRM Solution CommandLine.   This tool helps...]]></description>
      <content:encoded><![CDATA[<p>Hi,</p>  <p>I'm pleased to release the first version of CRM Solution CommandLine.   <br />This tool helps administrators to automate solution deployment tasks. </p>  <p>Binaries and sources code are available on CodePlex : <a href="https://crmsolutioncmdhlp.codeplex.com/">https://crmsolutioncmdhlp.codeplex.com/</a></p>  <p>Thanks for your feedbacks and advices !</p>]]></content:encoded>
    </item>
    <item>
      <title>Scripting : Toggle proxy server in IE settings with PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/scripting-toggle-proxy-server-in-ie-settings-with-powershell</link>
      <pubDate>Sat, 18 May 2013 00:43:37 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2013/05/18/scripting-toggle-proxy-server-in-ie-settings-with-powershell/</guid>
      <description><![CDATA[My current Customer use a proxy server for Internet and I need to change this settings each morning...]]></description>
      <content:encoded><![CDATA[<p>My current Customer use a proxy server for Internet and I need to change this settings each morning (when I start to work for him) and each evening (when I return at home). To save precious time, I wrote a little script that toggle this setting at each script execution :</p>  <pre style="padding: 5px; border: 1px solid rgb(206, 206, 206); width: 572px; height: 362px; overflow: auto; min-height: 40px; background-color: rgb(251, 251, 251);"><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">$regKey=&quot;<span style="color: rgb(139, 0, 0);">HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">$proxyServer = &quot;<span style="color: rgb(139, 0, 0);"></span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">$proxyServerToDefine = &quot;<span style="color: rgb(139, 0, 0);">{Proxy}:{Port}</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"></pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"></pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"><span style="color: rgb(0, 0, 255);">Write</span>-Host &quot;<span style="color: rgb(139, 0, 0);">Retrieve the proxy server ...</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">$proxyServer = <span style="color: rgb(0, 0, 255);">Get</span>-ItemProperty -path $regKey ProxyServer -ErrorAction SilentlyContinue
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"></pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"><span style="color: rgb(0, 0, 255);">Write</span>-Host $proxyServer
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"></pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"><span style="color: rgb(0, 0, 255);">if</span>([<span style="color: rgb(0, 0, 255);">string</span>]::IsNullOrEmpty($proxyServer))
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">{
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Write</span>-Host &quot;<span style="color: rgb(139, 0, 0);">Proxy is actually disabled</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Set</span>-ItemProperty -path $regKey ProxyEnable -value 1
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Set</span>-ItemProperty -path $regKey ProxyServer -value $proxyServerToDefine
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Write</span>-Host &quot;<span style="color: rgb(139, 0, 0);">Proxy is now enabled</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">}
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"><span style="color: rgb(0, 0, 255);">else</span>
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">{
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Write</span>-Host &quot;<span style="color: rgb(139, 0, 0);">Proxy is actually enabled</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Set</span>-ItemProperty -path $regKey ProxyEnable -value 0
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    Remove-ItemProperty -path $regKey -name ProxyServer
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">    <span style="color: rgb(0, 0, 255);">Write</span>-Host &quot;<span style="color: rgb(139, 0, 0);">Proxy is now disabled</span>&quot;
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">}</pre></pre>
Hope this helps! 

]]></content:encoded>
    </item>
    <item>
      <title>New Microsoft Release : ALM for Microsoft Dynamics CRM 2011 : CRM Solution Lifecycle Management</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management</link>
      <pubDate>Thu, 16 May 2013 23:06:58 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2013/05/16/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management/</guid>
      <description><![CDATA[Microsoft has released a white paper regarding solution lifecycle management.   This document...]]></description>
      <content:encoded><![CDATA[<p>Microsoft has released a white paper regarding solution lifecycle management. </p>  <p>This document provides interesting information about methodologies and processes to handle solution development, deployment and test during enterprise scenarios.   <br /></p>  <p>Moreover, this document describes how to integrate CRM solution package into Visual Studio (and also into TFS source control) with <a href="https://msdn.microsoft.com/en-us/library/jj602974.aspx" target="_blank">Solution Packager</a>.    <br />This step is the key to facilitate versionning and branches management.</p>  <p>If you want more details about ALM &amp; CRM, you can take a look to our TechDays presentation (in French, sorry) :   <br /><a title="https://www.microsoft.com/france/mstechdays/programmes/2013/fiche-session.aspx?ID=b9310ae7-dc97-4c8a-af26-2b9cbbfae309" href="https://www.microsoft.com/france/mstechdays/programmes/2013/fiche-session.aspx?ID=b9310ae7-dc97-4c8a-af26-2b9cbbfae309" target="_blank">https://www.microsoft.com/france/mstechdays/programmes/2013/fiche-session.aspx?ID=b9310ae7-dc97-4c8a-af26-2b9cbbfae309</a>&#160;</p>  <p>&#160;</p>  <p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=39044" target="_blank">ALM for Microsoft Dynamics CRM 2011 : CRM Solution Lifecycle Management</a> is available on Microsoft Download.</p>]]></content:encoded>
    </item>
    <item>
      <title>Dynamics CRM error : The specified module could not be found (Win32Exception)</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/dynamics-crm-error-the-specified-module-could-not-be-found-win32exception</link>
      <pubDate>Wed, 15 May 2013 09:25:44 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2013/05/15/dynamics-crm-error-the-specified-module-could-not-be-found-win32exception/</guid>
      <description><![CDATA[Recently I have encountered the following error during CRM web application load :     An unhandled...]]></description>
      <content:encoded><![CDATA[<p>Recently I have encountered the following error during CRM web application load :</p>  <div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 98.2%; height: 230px; text-align: left; line-height: 12pt; overflow: auto; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; background-color: rgb(244, 244, 244);">   <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">An unhandled exception has occurred<br /><br /> Exception type: Win32Exception <br /> Exception message: The specified module could not be found.<br /><br /><br />Stack trace:    <br />   at Microsoft.Crm.RegControl.LoadLibrariesInternal(Boolean isInClientContext)<br />   at Microsoft.Crm.RunInitializerTracker.TryRun(Type typeOfInitializer, RunInitializerDelegate RunInitializerDelegate)<br />   at Microsoft.Crm.ApplicationInitializer.Microsoft.Crm.IApplicationInitializer.Initialize()<br />   at Microsoft.Crm.MainApplication.Initialize(String nameCallerMethod)<br /><br />   at Microsoft.Crm.MainApplication.Application_OnStart()</pre>

  <br /></div>

<p>With <a title="SysInternals Process Monitor" href="https://technet.microsoft.com/fr-fr/sysinternals/bb896645.aspx" target="_blank">ProcMon</a> help, I have identified that IIS application pool process (w3wp.exe) tried to load some libraries :</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/metablogapi/4377.image_70BD928A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-metablogapi/4377.image_5F00_70BD928A.png"><img title="image" style="display: inline;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/metablogapi/0363.image_thumb_177B82FE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-metablogapi/0363.image_5F00_thumb_5F00_177B82FE.png" width="620" height="389" /></a> </p>

<p>After a quick research wih <a href="https://www.bing.com" target="_blank">Bing</a> help, I have found that this problem is linked to the SQL Server 2008 Data Access component that is missing on CRM server.</p>

<p>To resolve this problem, just install <strong>Microsoft SQL Server 2008 Native Client</strong></p>

<ul>
  <li><a href="https://go.microsoft.com/fwlink/?LinkId=123717&amp;clcid=0x409">X86 Package</a> (sqlncli.msi) - 4549 KB</li>

  <li><a href="https://go.microsoft.com/fwlink/?LinkId=123718&amp;clcid=0x409">X64 Package</a> (sqlncli.msi) - 7963 KB</li>

  <li><a href="https://go.microsoft.com/fwlink/?LinkId=123719&amp;clcid=0x409">IA64 Package</a> (sqlncli.msi) - 11112 KB</li>
</ul>

<p>Hope this help!</p>]]></content:encoded>
    </item>
    <item>
      <title>Media File Manager</title>
      <link>https://docs.microsoft.com/archive/blogs/aymerics_blog/media-file-manager</link>
      <pubDate>Wed, 01 May 2013 12:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Aymeric Mouillé - Consultant]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aymerics_blog/2013/05/01/media-file-manager/</guid>
      <description><![CDATA[OK, here's the scenario : you have a lot of pictures and videos and it takes a lot of disk space. If...]]></description>
      <content:encoded><![CDATA[<p>OK, here's the scenario : you have a lot of pictures and videos and it takes a lot of disk space. <br />If you want to organize and compress them, you will apreciate this tool. <br /><br />Media File Manager processes given directory arborescence to find pictures and video. <br />It take the file creation date according to metadata to give an appropriate name.<br /> Then it compresses and resizes pictures with high quality respect.&nbsp;</p>
<p><strong>Warning</strong> : This tool is perfect for my exigences. Be aware that it will loose quality on HD pictures.</p>
<p><strong>Features</strong> :</p>
<p>&nbsp;1) Change file name according to creation date (ex : "DSC976878.jpg" =&gt; "2012-09-17 18-28-54.jpg")</p>
<p>&nbsp;2) Compress and resize picture</p>
<p><strong>Example</strong> :</p>
<table border="0">
<tbody>
<tr>
<td style="text-align: center;"><strong>Before&nbsp;</strong></td>
<td style="text-align: center;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/8838.Before.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/8838.Before.png" target="about:blank"> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/8838.Before.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/8838.Before.png" alt="Before" width="550" border="0" /> </a></td>
</tr>
<tr>
<td><strong>After &nbsp;&nbsp;</strong></td>
<td><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/3652.After.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/3652.After.png" target="about:blank"> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/3652.After.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/3652.After.png" alt="After" width="550" border="0" /> </a></td>
</tr>
</tbody>
</table>
<p>If you want to compare :</p>
<ul>
<li><a title="Picture <strong>before</strong> resizing and compression" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/5773.Picture-Before.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/5773.Picture_2D00_Before.jpg" target="_blank">Picture <strong>before</strong> resizing and compression</a></li>
<li><a title="Picture after resizing and compression" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/6562.Picture-After.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/6562.Picture_2D00_After.jpg" target="_blank">Picture <strong>after</strong> resizing and compression</a> &nbsp;</li>
</ul>
<p><strong>Missing features</strong> :</p>
<ul>
<li>Video compression</li>
</ul>
<p>&nbsp;</p>
<p>Just release source code because you have to check it before run the tool : &nbsp;<a title="Media File Manager (Source code)" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/95/Media%20File%20Renamer/5732.Media%20File%20Manager.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-95-Media+File+Renamer/5732.Media-File-Manager.zip" target="_blank">MediaFileManager</a>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Important</strong> : This code and information are provided "as is" without warranty of any kind, either expressed or implied.</p>]]></content:encoded>
    </item>
  </channel>
</rss>