Recently I’ve been working on Paint.Net, I used to install it using the .exe, however found that it would not install under the SYSTEM context. It worked when users would install from the Catalog, but I was unable to push updated versions.
Today I was able to resolve the issue by using the /createMsi feature.
I liked using the .exe, as it was only 6MB and would install for both x86 and x64 machines, but if it doesn’t work in all senarios. So now I’ve switched to using the MSI for consistency.
Offical Documenation: http://www.getpaint.net/doc/latest/UnattendedInstallation.html
- Requires .Net 4.6 or above. (with Paint.Net 4.0.9, as used in this example)
- Nice article on deploying .Net using ConfigMgr HERE. (Just replace 4.5.2 with latest version)
Once downloaded, create the MSI: (I have a script here I use that will create the MSI files, that doesn’t care about the downloaded exe name, and copy the MSI to the source)
REM Using FOR Loop to find any EXE file and run it with these arguments
for %%i in (*.exe) do cmd /c %%i /createMsi CHECKFORBETAS=0 DESKTOPSHORTCUT=0 CHECKFORUPDATES=0
REM Copy the 2 Newly created MSI Files to the Source Folder (Assuming you're running this script from the source folder)
xcopy %userprofile%\desktop\PaintDotNetMsi\* .\ /Y
paint.net.4.0.9.install.exe /createMsi CHECKFORBETAS=0 DESKTOPSHORTCUT=0 CHECKFORUPDATES=0
- /createMsi - Creates the MSI Files and places them on the desktop
- CHECKFORBETAS=o – Disables checking for Beta Version in the Options
- DESKTOPSHORTCUT=0 – Will not create a Desktop Shortcut for Paint.net (Remove this part if you want the icon)
- CHECKFORUPDATES=o – Disables checking for updates in the Options
- More options at the Official Documenation link
Example showing use of the Script, which will create the 2 MSI files on the desktop, then I manually move.
Open Elevated Command Prompt, change directory to the Source, and run the CreateMSI_PaintNet.cmd, the Paint.Net installer box will open showing a status bar, and where it has created the MSI files once completed.
Click Finish for the script to Continue, it will then copy the two MSI Files to the Source Folder:
Now that you have your MSI files for deployment…
Create your ConfigMgr Application (I’m only deploying for x64, so I’ve only got 1 deployment type)
Programs: msiexec /i "PaintDotNet_x64.msi"
Detection Method = MSI Info & Version
Requirements = x64
Now you can add an additional deployment for x86, follow the same steps, just change the requirements to x64 condition not exist (Buttom radio button)
Now, once the deployment is installed, there will be no desktop icon, and the boxes to check for updates will not be checked:
Thanks to everyone who develops this great free Photo Editor!
1 thought on “Deploy Paint.Net with ConfigMgr Application Model”
I was looking for an msi of winscp and stumbled onto your website. There are a few posts on your blog but so interesting. I already made a package of this paint.net app which I needed to make (on my to do list) and with your help I made it quicker 😉 Thanks!
A question: For the uninstall program you use the .exe file again? Why not using the uninstall string instead? If the cache is deleted between install/uninstall time the machine needs to download it again 🙂
I also saw you made a package of Greenshot which is a pain in the a*s as disabling the update option is not working and people are asking the techs to solve this. I made a package based on a portable version of Greenshot and it works but if I can use an installer it's cleaner.
And finally I will definitely use your Windows 10 OSD topic when our business will be ready. It looks very promising. Keep up the good work!