Sunday, August 30, 2015

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.

That's it.

To Uninstall the fix (i.e. if Dassalt releases a proper update) Right-Click "UninstallFix.Bat" and select "Run as Administrator".

Magic!

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!

Update:
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.

23 comments:

Unknown said...

You are my hero! easy as pie and it doesn't feel slow at all. Very much appreciated, thanks so much!

Denis Czeskleba said...

Thanks so much, works like a charm. Easy as pie. You Sir (or madam) are my hero!

Denis Czeskleba said...

You are my hero! easy as pie and it doesn't feel slow at all. Very much appreciated, thanks so much! mhh either I posted this a few times now or the comment thing doesn't work. either way thanks!

Matthew H said...

Awesome fix. Thank you it fixed the problem really easily and quickly!

Ilya Einhorn said...

THANKS A LOT.
WORKS FINE!

David Gassier said...

Thank you so much!
It works like a charm!

sywesk said...

Hi,

You did a great job here ! I heard of the tool you used before, but completely forgot about it. You fix just work as expected.

Thank you !

Indra Suggala said...

Thanks alot !! its a great help :)

aarontbr said...

Thank you so much, your shim saved the day for me.

Unknown said...

You, sir, are a CHAMP!! Thank you!

Benjamin said...

You are a hero!

Koen Swinkels said...

Great, it works! Thnx a million!

Koen Swinkels said...

Great! Works perfect! Thnx a million!

KN said...

you are awesome...Thank you so much

Kon Na said...

You are awesome... Thank you so much!!!

tinh nguyen said...

Thank you very much! you are my hero!

tinh nguyen said...

Thank you so much! you're my hero! it's very helpful for me!!

Job said...

Thank you so much! Now I can finish my project :)

Stefan said...

Thanks a lot, this fix is amazing!

Anonymous said...

Thank you!

Gjks Gjks said...

Hi, Will this fix work with Solidworks 2014 SP4 or SP5?

Elizabeth Greene said...

@Gjks Gjks

I don't think it will. It's specific to SW2015.

If you're in need of a solution for 2014, I can make some time to work on it. Do you have a with Win10 you can install 2014 on that I could remote into to test?

You can email me at Elizabeth.a.Greene@gmail.com

Anonymous said...

Thank you so much! You are my hero of the day
You saved my ass... :)
Udi