title: Manage multiple app config files during development
body: <p>I'm building an application that is used by several different customers.  Each customer has a fair amount of custom business logic, which I have cleverly refactored out into an assembly that gets loaded at runtime.  The name of that assembly, along with a number of other customer-specific settings, are stored in the application's configuration file.</p>
  
  <p>Right now, here's what I have to do in order to debug the application for customer foo:</p>
  
  <ol>
  <li>Go to the filesystem in my project directory and delete <code>app.config</code></li>
  <li>Copy <code>app.config.foo</code> to <code>app.config.foo - Copy</code>.</li>
  <li>Rename <code>app.config.foo - Copy</code> as <code>app.config</code>.</li>
  <li>Tell Windows that yes, I want to change the file's extension.</li>
  <li>Switch back to Visual Studio.</li>
  <li>Open the <code>Settings.settings</code> item in my project.</li>
  <li>Click "Yes" 13 or 14 times as VS asks me if I want to use the new settings that have been changed in <code>app.config</code>.</li>
  <li>Close <code>Settings.settings</code>.</li>
  </ol>
  
  <p>Okay!  Now I'm ready to debug!</p>
  
  <p>It seems to me that the rigamarole of opening <code>Settings.settings</code> is, or ought to be, unnecessary:  I don't need the default values in <code>Settings.cs</code> to be regenerated, because I don't use them.  But it's the only way I know of to make VS aware of the fact that the <code>app.config</code> file has changed, so that the build will copy it to the output directory.</p>
  
  <p>There's got to be an easier way of doing this.  What is it?</p>