In order to get my project to run on multiple platforms like XP, Vista 32, and Vista 64, I had to tweak the Visual Studio Project Properties.
I had to add these lines to the "Additional Manifest Dependencies" of the same property page. Notice that I did not include the public key token. The version specified is a version that should look for other versions based on the policy file:
"type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='amd64'"
or for x86:
"type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86'"
The trick was to set the "Generate Manifest" attribute under the Linker/Manifest File properties to "Yes" initially, let it generate the manifest file for you, then change it to no. Once the file is generated, you'll want to put it in a location where you can check it into source control.
Make sure that you never change the Generate Manifest option to "Yes" before compiling or it will overwrite any changes you make. Your .manifest file should look like this:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='amd64' />
</dependentAssembly>
</dependency>
</assembly>
Make sure to remove any extra stuff in the manifest file so it matches the file above. You can change the name and version to the file that your application is erroring about. If you are receiving the side-by-side configuration error and you need to get details about the file to add to the manifest, you can check in the Application Event Log. Make sure you specify a version that exists on your oldest target client.
One last step is to make sure that you are referencing the manifest under the Property Pages/Configuration Properties/Manifest Tool/Input and Output/:
Embed Manifest = true
Manifest Resource File (should point to the location of the file that we created
This is a bit of a hack to get all of it working. I wish the VS.NET team would cleanup the property pages a bit and allow us to control the minimum target client version a little easier than hacking the manifest. This is one of those MCSD type of test problems ;)