Windows Develop Bookmark and Share   
 index > ClickOnce and Setup & Deployment Projects > no- touch deployment - Updating dlls
 

no- touch deployment - Updating dlls

Hi,
I have an app that is deployed on an iis server. It contains an exe file and 5 dlls.
When i rebuild my app I copy and replace the latest version of the dlls and exe file to the server.
When the user goes to run the app by browsing to the exe file through http:\\Servername\myexe.exe  the latest version doesn't run(it still runs the previous version).
I have to delete a folder out of the c:\documents and settings\username\local settings\application data\assembily\dl2
usually called something odd like M5p6pADA.W4K

When i delete the folder and run the exe from the browser again it loads the correct latest version.

When i run the app from the server through the browser after uploading the latest files on My computer it works and runs the latest version.
I'm wondering if there is a setting on the users pc that could be stopping it from downloading the latest version?

We are using IE 6.0.

Thanks
MigrationUser 1  Tuesday, August 19, 2003 10:39 PM
When you deploy an application over a web server and use a browser to run that application, the files needed to run the application on web server are downloaded to the clients machine in a place called the global assembly cache.  This physical place is different per operating system, but there is a dos command in your .net framework folder that can show you the contents and versions of the files in your gac.  The command is gacutil.exe and there are switches that can show or delete the files in the gac.  

As far as your question about a setting on the user's pc, I don't think there is one, but I could be wrong.  

I believe if you make your exe and dll files strong names, you will ensure that the latest version is always downloaded.  Making each file a strong name requires you to create a key file and have manual version numbers for each assembly file.  You should be able to find some info on MSDN about doing this if you need more info.

Hope this helps you out.
Marc
MigrationUser 1  Friday, August 22, 2003 1:58 PM
Thanks mdg17 for your reply

I've started putting strong names on all the my assemblies, but i've come to a sang.

You need to have strong names on ALL assembilies even ones you havn't created. Ie the interop.office.dll 
Office controls or any other controls (may be as they are VB6 components)

So unless i can somehow get these to have strong names my app wont compile.

If anyone knows or has used strong names could you give me a hand.

Thanks
Anna
MigrationUser 1  Tuesday, September 16, 2003 12:07 AM
I experienced this too and found that when you manually change the assembly version in AssemblyInfo.cs, the newest version is loaded without having to manually delete your files or even Strong Naming assemblies.

[assembly: AssemblyVersion("1.0.1")]

next build

[assembly: AssemblyVersion("1.0.2")]

I kept wondering why my new versions weren't loading until I tried that and it worked without me deleting any files or even emptying my Temporary Internet Files folder

MigrationUser 1  Friday, September 26, 2003 3:50 PM
Actually, the runtime does not use the assembly version when deciding whether to download or use a cached version of the assembly. Check the article http://msdn.microsoft.com/msdnmag/issues/02/07/netsmartclients/default.aspx, section "Versioning". The the assembly's date/time stamp is used. 

Try to check the IIS log, particularly the cs-bytes and sc-bytes parameters for the GET requests for your exe/dll, to make sure the assembly is downloaded or not. 

Good luck. 
MigrationUser 1  Friday, September 26, 2003 6:35 PM

You can use google to search for other answers

Custom Search

More Threads

• Problem about deployment
• Deny or halt uninstall
• Click once and Folder locations
• Click once with reading files
• Forms control not displaying in IE on XP
• Clickonce for an Addin
• Running multiple setup projects?
• .net Deployement
• New user cant install app after I have posted updates?
• Update app via website