Background Info
Here is a rather strange behavior I saw when I deployed a .NET application onto a PC: It takes about a whole minute for my main form to show up! The machine is running Windows 7 on a 2.6G duo core CPU with 2GB RAM with no other applications running.
I’ve deployed the same software onto different PCs of same hardware and OS configuration, and the same software would load within seconds on PCs with internet connection.
I use Devexpress’s Winforms component for my applications, so I thought maybe it has something to do with checking for component license via the internet, but it couldn’t be. I paid for the components already!
Solution
Turns out it has something to do with Microsoft .NET’s authenticode signature checking, and without internet connection, you literally just have to wait for all the behind-the-scene process to timeout.
To disable signature authentication, open up your [application].exe.config file in your Program Files directory and add the following element under <configuration>:
<runtime>
<generatePublisherEvidence enabled=”false”/>
</runtime>
NOTE: You may need to give WRITE permission to your application’s config file to make the edit.
NOTE: You will not see this slow loading problem if you are not using a signed 3rd party (in this case it’s Devexpress) component in your application.
You can read more about it here:
https://www.devexpress.com/Support/Center/Question/Details/Q363966
http://blogs.technet.com/b/markrussinovich/archive/2009/05/26/3244913.aspx
https://msdn.microsoft.com/en-us/library/bb629393(v=vs.110).aspx