Fixed: Solidworks 2015 x64 on Windows 10 Application Compatibility Shim
My customer is upgrading to Windows 10, and they found that SolidWorks 2015 crashes every time you try to Open or Save a part or assembly. File > Open > Crash or File > Save as > Crash
I fixed it. The fix and steps to install it are at the bottom of this post.
The application works, slowly, if you run it in "Windows 8 compatibility mode". Compatibility Mode lets you arm-twist your older applications to run on newer operating systems by turning on many different compatibility shims. Some of these shims, like registry virtualization, can have a significant performance impact. The performance hit comes from the extra layer of translations and safety checks required to make Windows 10 "look like" Windows 8. In my not-quite-enough-RAM-in-the-system case, these shims slow the application noticeably.
I made a better fix.
Microsoft publishes the Application Compatibility Toolkit that lets you create custom application compatibility shims. By applying and testing the Win8 shims one-at-a-time I was able to get SolidWorks working with only a single (fast) compatibility fix. The secret sauce for SolidWorks 2015 on Windows 10 is to lie to it when it asks what OS is running. I accomplished this with the fantastically named Win8RTMVersionLie * shim.
* I'd love to link to the Win8RTMVersionLie documentation here but I couldn't find it online. The documentation for VistaRTMVersionLie is here instead. The TLDR version is it does what the name says it does.
Here is what the completed shim looks like in Compatibility Administrator.
Once these shims are created they are stored in Shim Database (*.sdb) files. The SDBs are installed with the built-in tool SdbInst.exe.
I've packaged this compatibility shim and a couple of batch files to install and uninstall it.
Getting/Installing the Fix:1. Download the .zip file SolidWorks2015Win10Fix.zip
2. Extract it to a folder.
3. Right-Click "InstallFix.Bat" and select "Run as Administrator".
4. Accept the UAC Prompt.
To Uninstall the fix (i.e. if Dassalt releases a proper update) Right-Click "UninstallFix.Bat" and select "Run as Administrator".
Leave a comment if you'd like to see more posts on Application Compatibility. It is a tiny technology niche, but the ability to make old apps run on a modern OS can be huge!
If Windows Smartscreen blocks the batch files you can right-click them, go to properties, and click "Unblock". Alternately you can install the fix with sdbinst "Solidworks 2015x64.sdb" at an administrative command prompt.