I have been trolling the forums and there appears to be a lot of confusion on how to install SolidWorks with SCCM 2012. SolidWorks has not provided much documentation on how to do this and I struggled through it for a while so I thought I would share some of my notes. My notes are based on SolidWorks 2014 x64 SP04, Windows 7 x64 and SCCM 2012 SP1.
Steps to Deploy
- Download install files from SolidWorks
- Generate MST for install
- If you have more than 30 installs of SolidWorks and are still using the SolidWorks Installation Manager, stop. We have found that its bulky and doesn't work that well when you are doing mass installs. We went from a 25% failure rate to less than 1% failure rate when we switched from the SolidWorks Installation Manager to MSI installs.
- Create Deployments for SolidWorks Prerequisites
- Create Deployment for SolidWorks 2014 x64 SP04
Download Install Files from SolidWorks
This one is pretty self-explanatory, make sure you select Download Only and download a full copy of SolidWorks. When it is done downloading copy the install files to the fileserver you are using for SCCM.
Generate MST for Install
Browse out to the SolidWorks Installation Guide and go to page 44. Pages 44-47 will have all the command line properties you will need to make your MST. The Command Line Feature Properties are for specific features of SolidWorks, such as Costing or PhotoView. Command Line Global Properties are for installation properties, such as the install directory or serial number.
Generating the MST is actually very easy once you have all the command line properties. In the SolidWorks installation directory there is a program called SwCreateMST.exe that will create your MST. Make a batch file that calls the SwCreateMST.exe, then points at solidworks.msi and then has your settings behind it. A copy of what we use is below.
Please note that spelling and capitalization are important! Make sure your command line properties are spelled and capitalized exactly how they are listed in the SolidWorks Installation Guide. According to SwCreateMST.exe, SolidWorksRoutedsystems is different than SolidWorksRoutedSystems.
"\\fileserver\Sources\Dassault Systems\SolidWorks 2014 x64 SP04\swwi\data\SwCreateMST.exe" "\\fileserver\Sources\Dassault Systems\SolidWorks 2014 x64 SP04\swwi\data\solidworks.msi" INSTALLDIR="C:\Program Files\Solidworks Corp" SOLIDWORKSSERIALNUMBER="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX" ENABLEPERFORMANCE=0 OFFICEOPTION=3 SERVERLIST="25734@servername" UPGRADESWINSTALL=0 TOOLBOXFOLDER="C:\Solidworks Data 2014 SP4" ADDLOCAL=SolidWorks,FeatureWorks,PhotoView,SolidWorksRoutedsystems,SolidWorksUtilities,TolAnalyst,CircuitWorks,SolidWorksCosting,SolidWorksDesignChecker,ExampleFiles,Manuals,HelpFiles,Vsta,Motion,Simulation
After you run your batch file you will see a new file in the \swwi\data directory called solidworks.mst. That will be the file you use to customize the SolidWorks install.
Create Deployments for SolidWorks Prerequisites
Within SCCM you will need to create an Application for each of the 13 (assuming you are using Windows 7 x64) SolidWorks Prerequisites. Most of the prerequisites are Script Installers, some are Windows Installers. Just depends how they are packaged. Page 32 of the SolidWorks Installation Guide has all the information you need about the prerequisites and how to install them.
For all of my Detection Rules I used the MSI GUID and then made sure the MSI Property Version was greater than or equal to the SolidWorks Perquisite value. There are a number of prerequisites that may already be installed and updated through Windows Update so their property version may be higher then what SolidWorks requires.
Below are all the file versions and command lines to silence the installs of the prerequisites.
- Office Web Components
- Version: 12.0.6213.100
- \prereqs\OfficeWeb\owc11.exe" /quiet
- Visual C++ 2005 Redistributable Package x86
- Version: 8.0.61001
- \prereqs\VCRedist\vcredist_x86.exe" /q
- Visual C++ 2005 Redistributable Package x64
- Version: 8.0.59192
- \prereqs\VCRedist\vcredist_x64.exe" /q
- Visual C++ 2008 Redistributable Package x86
- Version: 9.0.30729.6161
- \prereqs\VCRedist9\vcredist_x86.exe" /q
- Visual C++ 2008 Redistributable Package x64
- Version: 9.0.30729.6161
- \prereqs\VCRedist9\vcredist_x64.exe" /q
- Visual C++ 2010 Redistributable Package x86
- Version: 10.0.40219
- \prereqs\VCRedist10\vcredist_x86.exe" /q
- Visual C++ 2010 Redistributable Package x64
- Version: 10.0.40219
- \prereqs\VCRedist10\vcredist_x64.exe" /q
- Visual Studio Tools for Applications
- Version: 8.0.50727.146
- \prereqs\VSTA\vsta_aide.msi" /q
- Visual Studio Remote Debugger
- Version: 8.0.50727.1844
- \prereqs\RemoteDebugger\rdbgexp.msi" /q
- Visual Basic 7.1
- Version: 7.1.00.00
- \prereqs\VBA\vba71.msi" /q
- Visual Basic English
- Version: 7.1.0.0
- \prereqs\VBA\vba71_1033.msi" /q
- .NET Framework 4
- Version: 4.0.30319
- \prereqs\dotNetFx\dotNetFx40_Full_x86_x64.exe" /q /norestart
- Bonjour service for Windows
- Version: 3.0.0.10
- \prereqs\Bonjour\Bonjour64.msi" /q
Create Deployment for SolidWorks 2014 x64 SP04
Setting up the Application Deployment for SolidWorks in SCCM is where things get funky. We use a Script Installer with a batch file in SCCM because SolidWorks will not install by importing the MSI and because we do a couple customizations.
Before setting up the Application Deployment we make a couple of changes to the swwi folder. First we copy the solidworks.mst that was created earlier out of the data folder and into the root of the swwi folder. Then we make a folder called Reference Files where we put a couple of registry files we call during the install. And finally we make an install batch file in the root of the swwi folder.
The install batch file is copied below but the general work flow of our install batch file is:
- Uninstall previous version of Solidworks using Msiexec.exe /x
- Remove the Solidworks Installation Manager
- Delete any leftover folders
- Delete any leftover registry keys
- Install SolidWorks
The most important thing to note about the install batch file is that you cannot use Msiexec.exe to call solidworks.msi. For some lovely reason when we try to use msiexec.exe /i solidworks.msi the install fill fail. When we take the msiexec.exe /i solidworks.msi out it works just fine. We don't know if its poor coding on Solidwork's part but it is backwards from every other MSI installer we've come across.
REM Uninstall Solidworks 2013 SP5.0
MsiExec.exe /X{B6B5EA7E-B91F-443D-A958-B0062FB53804} /qn
REM Uninstall Solidworks Installation Manager
regedit /s ".\Reference Files\SLDIMUninstall.reg"
REM Delete Leftover Files and Folders
if exist "C:\Program Files\SolidWorks" rmdir /s /q "C:\Program Files\SolidWorks"
if exist "C:\SolidWorks Data" rmdir /s /q "C:\Solidworks Data"
if exist "C:\Program Files\SolidWorks Corp\Solidworks" rmdir /s /q "C:\Program Files\SolidWorks Corp\Solidworks"
if exist "C:\Windows\Solidworks" rmdir /s /q "C:\Windows\Solidworks"
REM Delete Leftover Registry Files
regedit /s ".\Reference Files\Wipe-SW-CU.reg"
regedit /s ".\Reference Files\Wipe-SW-LM.reg"
REM Install Solidworks 2014 SP4.0
".\data\solidworks.msi" TRANSFORMS="solidworks.mst" /qn
Once you have the install batch file created you can create the Application Deployment. At this point it's pretty self-explanatory. Set the content location as the swwi folder and the install program as the install batch file. Add the all the prerequisites as dependencies, load up your distribution points and you should be all set.
This is a pretty quick and dirty how to so hopefully it helps someone. I don't know if some of the issues we run into are specific to us or everyone that uses SolidWorks but it seems that Solidworks does not follow normal standards.