title: Why won't MSBuild build a project with a dot in the name?
body: <h1>The Story So Far</h1>
  
  <p>I've got a nice solution with a desktop application project, a few library projects, and a couple of development tools projects (also desktop applications). At the moment, my build server outputs all of the code into one <code>OutputPath</code>. So we end up with</p>
  
  <pre><code>drop-x.y.z\  
    Company.MainApplication.exe      &lt;-- main application   
    Company.MainApplicationCore.dll  &lt;-- libraries  
    Helper.exe                       &lt;-- developer tools  
    Grapher.exe  
    Parser.exe  
    ...                              &lt;-- the rest of the output
  </code></pre>
  
  <p>But, we're growing up and people outside of our team want access to our tools. So I want to organize the output. I decided that what we would want is a different <code>OutputPath</code> per executable project</p>
  
  <pre><code>drop-x.y.z\
    Company.MainApplication\
      Company.MainApplication.exe      &lt;-- main application 
      Company.MainApplicationCore.dll  &lt;-- libraries
      ...                              &lt;-- application specific output
    Helper\
      Helper.exe                       &lt;-- developer tools
      ...                              &lt;-- tool specific output
    Grapher\
      Grapher.exe
      ...
    Parser\
      Parser.exe
      ...
  </code></pre>
  
  <hr>
  
  <h1>What I Did</h1>
  
  <p>I found this simple command. I like it because it retains all the Solution working-dir context that makes msbuild a pain.</p>
  
  <pre><code>msbuild /target:&lt;ProjectName&gt;
  </code></pre>
  
  <p>For example, from my solution root as a working directory, I would call</p>
  
  <pre><code>PS&gt; msbuild /target:Helper /property:OutputPath="$pwd\out\Helper"
  </code></pre>
  
  <p>I'm testing this from PowerShell, so that <code>$pwd</code> resolves to the full path to my working directory, or the Solution root in this case. I get the output I desire.</p>
  
  <p>However, when I run this command</p>
  
  <pre><code>PS&gt; msbuild /target:Company.MainApplication /property:OutputPath="$pwd\out\Company.MainApplication"
  </code></pre>
  
  <p>I get the following error output (there's no more information, I ran with <code>/verbosity:diagnostic</code>)</p>
  
  <blockquote>
    <p>The target "Company.MainApplication" does not exist in the project.</p>
  </blockquote>
  
  <hr>
  
  <h1>What I Need</h1>
  
  <p>The command fails on any project with a dot or dots in the name. I tried with many combinations of working directories and properties. I tried several ways of escaping the property values. I also tried running the command from a <code>&lt;Task&gt;</code> in a targets file.</p>
  
  <p>I need to know either<br>
  <strong>A) How to fix this command to work property</strong><br>
  <strong>B) How to achieve the same output with minimal friction</strong>  </p>