title: MSBuild how to pass a parameter to set a property value?
body: <p>Assume I have 3 cs projects in a solution and I import this Common.props file in all 3 csproj files.</p>
  
  <p>Here is my Common.props file that will sit at the solution level, each project in my solution will import this Common.props file, I am trying to figure out how I can set the Externals property on the build server via command line that would call a custom CI.Build file that would also sit at the solution level also. MSBuild is pretty new to me, I did all kinds of searching for an answer to this but nothing I found made 100% sense to me.</p>
  
  <pre><code>   &lt;?xml version="1.0" encoding="utf-8"?&gt;
      &lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"&gt;
          &lt;PropertyGroup&gt;
             &lt;Externals Condition="'$(Externals)'==''"&gt;..\..\..\Externals\&lt;/Externals&gt;
             &lt;/PropertyGroup&gt;
             &lt;ItemGroup&gt;
                 &lt;ThirdPartyLibs Include="$(OutputPath)\*.dll" /&gt;
             &lt;/ItemGroup&gt;
             &lt;Target Name="BeforeResolveReferences"&gt;
             &lt;PropertyGroup&gt;
                 &lt;AssemblySearchPaths&gt;$(Externals);$(AssemblySearchPaths)&lt;/AssemblySearchPaths&gt;
             &lt;/PropertyGroup&gt;
             &lt;/Target&gt;
                 &lt;Target Name="BeforeBuild"&gt;
                 &lt;Message Text="$(Externals)"&gt;&lt;/Message&gt;
             &lt;/Target&gt;
             &lt;Target Name="AfterBuild"&gt;
                 &lt;Message Text="After Build______"&gt;&lt;/Message&gt;
             &lt;/Target&gt;
             &lt;Target Name="CleanDlls" AfterTargets="Clean"&gt;
                 &lt;Delete Files="@(ThirdPartyLibs)"&gt;&lt;/Delete&gt;
             &lt;/Target&gt;
      &lt;/Project&gt;
  </code></pre>