title: Post-Build Events Output Path for Projects and Deployment Project
body: <p>I am working on a program that needs to have each exe signed before being packaged in the MSI deployment project. I've tried using VS2010's Signing tools ("Sign the Assembly"), but the key file doesn't seem to like VS2010. VS doesn't ask for a password or any of that and doesn't sign the exe's. So, I've been running the sign tool via post-build command line.</p>
  
  <p>Before we get too involved, we should take a look at the current structure of the application (I don't have control over this. I'm just making the updater and trying to test packaging):</p>
  
  <ul>
  <li>parent folder
  <ul>
  <li>Main EXE Project Folder</li>
  <li>Updater EXE Project Folder</li>
  <li>Service Project Folder</li>
  <li>Installer Settings (uninstall processes, etc) Project Folder</li>
  <li>Deployment Project Folder</li>
  <li>Signing Files Folder</li>
  </ul></li>
  </ul>
  
  <p>I read somewhere that the deployment project generates the exe in a different folder (<code>obj/x86/Release/app.exe</code> instead of <code>bin/Release</code>).</p>
  
  <p>My current method of ensuring I sign the file is by hardcoding paths like this:</p>
  
  <p><code>"..\..\..\..\SigningFolder\signtool" sign /f "..\..\..\..\SigningFolder\myKeyFile.p12" /p mypassword /t http://somecertsite.com "..\..\..\..\Updater\Updater\obj\x86\Release\Updater.exe"</code></p>
  
  <p><code>"..\..\..\..\SigningFolder\signtool" sign /f "..\..\..\..\SigningFolder\myKeyFile.p12" /p mypassword /t http://somecertsite.com "..\..\..\..\Updater\Updater\bin\Release\Updater.exe"</code></p>
  
  <p>This makes my eyes bleed. (This happens for each EXE and after the MSI is built, I sign the MSI as well.</p>
  
  <p>So, my question:</p>
  
  <ul>
  <li>Is there a way to target the absolute output of the path? If I use <code>$(OutDir)</code>, it points to <code>bin\Release</code> when compiling via the deployment project. (Or generally... Is there a better way to do this?)</li>
  </ul>