If you do not have the luxury of using an Application Compatibility tool such as Citrix AppDNA, Quest ChangeBase or Flexera Application Compatibility Pack you will not have the capability of creating automatic compatibility fixes. Which will mean you will rely on creating shims of manifest files to resolve some of your compatibility issues. Microsoft recommends developers to use manifest files for their developed applications, the manifest file lives with the .exe of the app and mitigates certain compatibility issues. Manifest files are not meant to be applied to third party applications. Instead, Microsoft suggests us to use Shims.
Shim are like a trick or a lie to your operating system. You create one per application with an issue. As you will see illustrated below you can target per application. The shim will then live on your systems alongside the application. It acts like a listener, waiting for the application you targeted during the creation of the shim to launch and when the application attempts to invoke the action which without the shim applied was generating an error, the shim kicks in and tells the application to allow the application to function. This may seem a little confusing. I hope to clarify as I go.
You can open Application Compatibility Administrator and you will see the above Interface.
If you expand applications you will see a long list of application within. Each represents valid shims for these applications. These are canned and ready for your use. This list does seem to be pretty outdated but I guess it would be, considering newer applications will be compatible. The list contains a large variety of application types but seems to be mainly for games.