Jump to content

Paint.NET takes almost an hour to install


Zoom7000

Recommended Posts

I administer a network at a high school. We have about 600 PCs of all different specs, ranging from Pentium 4s to Core i7's. I have noticed since version 3.5.10 of Paint.NET that it can take from 45 minutes to about an hour to install Paint.NET. Mainly it takes forever during the "Optimizing Paint.NET's performance for your system"

I never noticed this problem with any of the previous versions of Paint.NET, only since 3.5.10. Any ideas what I can do to avoid the installation taking so long? All our PCs are running Windows XP with the latest .NET Framework 4 Extended (+ 1, 1.1, 2, 3, 3.5 etc)

Edited by Zoom7000
Link to comment
Share on other sites

This may happen if you've recently installed either a service pack for Windows, or an update to .NET. The "optimizing" stage of the Paint.NET installer runs a program called NGEN, which precompiles the binaries so they don't have to be Just-In-Time (JIT) compiled every time you start the app. It saves a few seconds every time you start it (no joke), and also saves a TON of memory if you've got more than 1 copy of Paint.NET running on the machine (this mostly applies to a Remote Desktop / Terminal Server). But, when you've got a fresh Windows SP or a .NET update, the NGEN cache is invalidated. Then, when Paint.NET goes to install, large portions of .NET also have to be recompiled before it gets to compile the new Paint.NET install.

If you want to save time during the day, then blast the following command ahead of time before you install Paint.NET: "ngen update". Usually this is taken care of automatically when the system is "idle" by the .NET Optimization Service, but sometimes schedules don't line up. Especially for an admin such as yourself who may go and apply the latest Windows Updates, and then deploy Paint.NET right afterward.

ngen will be in C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe, and requires Administrator privilege to run. If you're on 64-bit, then replace Framework with Framework64. And when Paint.NET moves to .NET 4 or later, you'll have to adjust the "v2.0.50727" part. (or just use a for-loop and run every copy of ngen.exe that's in there, it won't hurt anything)

NGEN docs for .NET 2.0 - 3.5 SP1: http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.80).aspx

NGEN docs for .NET 4.0: http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.100).aspx

  • Upvote 1

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

And that just explained a backup problem I was fighting with last night ... Woot. PDN trolling just paid for itself. Thank you for that detailed explanation and links Rick.

***

Gallery at PDN-Fans

Link to comment
Share on other sites

Thanks for the update Rick. The trouble I have is I integrate applications in to our Windows XP build so that once Windows has finished installing, the PC is ready to go without any further need for update or interaction. So, .NET is one of the first things installed and Paint.NET is one of the last things installed, it just increases the build time quite considerably.

Am I reading correctly that running "ngen update" should reduce the installation time? I have just run ngen update on a live PC and the installation is still taking about an hour.

Link to comment
Share on other sites

Are you deploying Paint.NET by running the installer EXE on each machine, or are you using AD/GPO to push out the MSI (created via /createMsi) to the network ?

If the latter, adding QUEUENGEN=1 after /createMsi may help. This will bake the QUEUENGEN property into the MSI.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Are you deploying Paint.NET by running the installer EXE on each machine, or are you using AD/GPO to push out the MSI (created via /createMsi) to the network ?

If the latter, adding QUEUENGEN=1 after /createMsi may help. This will bake the QUEUENGEN property into the MSI.

Ah, that may help. At the moment I create the MSI using the following command:

PaintDotNet.exe /createMSI DESKTOPSHORTCUT=0

So, I'll add that to the creator and see how it goes. Thanks for your continued support! :)

Link to comment
Share on other sites

  • 9 years later...

Installation is extremely slow, thrashing the disk, and each update takes longer. Though that time is taken optimizing the interpreted .NET app, it makes this unusable. Regrettably, I've removed Paint.net in favor of apps such as IrfanView, which can be installed in seconds, simply by moving the executable in its folder to Program Files.

Link to comment
Share on other sites

  • BoltBait locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...