VS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2>I have been testing the update of our signing certificate. </font></p> <p align=left><font face=Arial size=2></font> </p> <p align=left><font face=Arial size=2>I deployed the application with the current certificate (not yet expired).</font></p> <p align=left><font face=Arial size=2>I had a handful of users install it. They do not have any prior versions installed.</font></p> <p align=left><font face=Arial size=2>I changed the application to be signed with the new certificate (Signing tab) and redeployed it. That is all I changed. </font></p> <p align=left>The handful of users ran the application to pick up the new version.</p> <p align=left>Two of the users had the error below and were unable to upgrade.</p> <p align=left>They can successfully remove the prior version and install the new version.</p> <p align=left> </p> <p align=left>We are using VS2008 SP-1, deploying via http. The user below is running Windows Vista. This is going to be a huge problem for us if we have to have all of our users uninstall and reinstall the application.</p> <p align=left> </p> <p align=left>Error Log:</p> <p align=left> </p> <p>PLATFORM VERSION INFO<br> Windows    : 6.0.6000.0 (Win32NT)<br> Common Language Runtime  : 2.0.50727.312<br> System.Deployment.dll   : 2.0.50727.312 (rtmLHS.050727-3100)<br> mscorwks.dll    : 2.0.50727.312 (rtmLHS.050727-3100)<br> dfdll.dll    : 2.0.50727.312 (rtmLHS.050727-3100)<br> dfshim.dll    : 2.0.50727.312 (rtmLHS.050727-3100)</p> <p>SOURCES<br> Deployment url   : <a>file:///C:/Users/Kathryn%20Leuenberger/AppData/Roaming/Microsoft/Windows/Start%20Menu/Programs/GoldMail,%20Inc/GoldMail.appref-ms</a><br>      Server  : Microsoft-IIS/6.0<br>      X-Powered-By : ASP.NET<br> Deployment Provider url  : <a title="http://web01.gldmail.com/gmstudio/GMStudio.application" href="http://web01.gldmail.com/gmstudio/GMStudio.application">http://web01.gldmail.com/gmstudio/GMStudio.application</a></p> <p>ERROR SUMMARY<br> Below is a summary of the errors, details of these errors are listed later in the log.<br> * Activation of C:\Users\Kathryn Leuenberger\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GoldMail, Inc\GoldMail.appref-ms resulted in exception. Following failure messages were detected:<br>  + The deployment identity does not match the subscription.</p> <p>COMPONENT STORE TRANSACTION FAILURE SUMMARY<br> No transaction error was detected.</p> <p>WARNINGS<br> There were no warnings during this operation.</p> <p>OPERATION PROGRESS STATUS<br> * [8/29/2008 3:52:03 PM] : Activation of C:\Users\Kathryn Leuenberger\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GoldMail, Inc\GoldMail.appref-ms has started.<br> * [8/29/2008 3:52:03 PM] : Performing necessary update check as specified by the deployment.</p> <p>ERROR DETAILS<br> Following errors were detected during this operation.<br> * [8/29/2008 3:52:03 PM] System.Deployment.Application.DeploymentException (SubscriptionState)<br>  - The deployment identity does not match the subscription.<br>  - Source: System.Deployment<br>  - Stack trace:<br>   at System.Deployment.Application.SubscriptionStore.CheckUpdateInManifest(SubscriptionState subState, AssemblyManifest deployment, Version currentVersion)<br>   at System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState subState)<br>   at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, TempFile&amp; deployFile)<br>   at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)<br>   at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)</p> <p>COMPONENT STORE TRANSACTION DETAILS<br> No transaction information is available.</p> <p> </p> <p>I thought they fixed this problem with VS2008. If anyone has any ideas on what I can do to troubleshoot or fix this problem, I would greatly appreciate it.</p> <p align=left> </p> <p align=left>RobinDotNet</p> <p align=left>GoldMail.com</p>© 2009 Microsoft Corporation. All rights reserved.Thu, 09 Jul 2009 02:17:25 Z1217520d-6dc4-4fb1-83d1-0fa148d60e5dhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1217520d-6dc4-4fb1-83d1-0fa148d60e5dhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1217520d-6dc4-4fb1-83d1-0fa148d60e5dRobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2>I have been testing the update of our signing certificate. </font></p> <p align=left><font face=Arial size=2></font> </p> <p align=left><font face=Arial size=2>I deployed the application with the current certificate (not yet expired).</font></p> <p align=left><font face=Arial size=2>I had a handful of users install it. They do not have any prior versions installed.</font></p> <p align=left><font face=Arial size=2>I changed the application to be signed with the new certificate (Signing tab) and redeployed it. That is all I changed. </font></p> <p align=left>The handful of users ran the application to pick up the new version.</p> <p align=left>Two of the users had the error below and were unable to upgrade.</p> <p align=left>They can successfully remove the prior version and install the new version.</p> <p align=left> </p> <p align=left>We are using VS2008 SP-1, deploying via http. The user below is running Windows Vista. This is going to be a huge problem for us if we have to have all of our users uninstall and reinstall the application.</p> <p align=left> </p> <p align=left>Error Log:</p> <p align=left> </p> <p>PLATFORM VERSION INFO<br> Windows    : 6.0.6000.0 (Win32NT)<br> Common Language Runtime  : 2.0.50727.312<br> System.Deployment.dll   : 2.0.50727.312 (rtmLHS.050727-3100)<br> mscorwks.dll    : 2.0.50727.312 (rtmLHS.050727-3100)<br> dfdll.dll    : 2.0.50727.312 (rtmLHS.050727-3100)<br> dfshim.dll    : 2.0.50727.312 (rtmLHS.050727-3100)</p> <p>SOURCES<br> Deployment url   : <a>file:///C:/Users/Kathryn%20Leuenberger/AppData/Roaming/Microsoft/Windows/Start%20Menu/Programs/GoldMail,%20Inc/GoldMail.appref-ms</a><br>      Server  : Microsoft-IIS/6.0<br>      X-Powered-By : ASP.NET<br> Deployment Provider url  : <a title="http://web01.gldmail.com/gmstudio/GMStudio.application" href="http://web01.gldmail.com/gmstudio/GMStudio.application">http://web01.gldmail.com/gmstudio/GMStudio.application</a></p> <p>ERROR SUMMARY<br> Below is a summary of the errors, details of these errors are listed later in the log.<br> * Activation of C:\Users\Kathryn Leuenberger\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GoldMail, Inc\GoldMail.appref-ms resulted in exception. Following failure messages were detected:<br>  + The deployment identity does not match the subscription.</p> <p>COMPONENT STORE TRANSACTION FAILURE SUMMARY<br> No transaction error was detected.</p> <p>WARNINGS<br> There were no warnings during this operation.</p> <p>OPERATION PROGRESS STATUS<br> * [8/29/2008 3:52:03 PM] : Activation of C:\Users\Kathryn Leuenberger\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GoldMail, Inc\GoldMail.appref-ms has started.<br> * [8/29/2008 3:52:03 PM] : Performing necessary update check as specified by the deployment.</p> <p>ERROR DETAILS<br> Following errors were detected during this operation.<br> * [8/29/2008 3:52:03 PM] System.Deployment.Application.DeploymentException (SubscriptionState)<br>  - The deployment identity does not match the subscription.<br>  - Source: System.Deployment<br>  - Stack trace:<br>   at System.Deployment.Application.SubscriptionStore.CheckUpdateInManifest(SubscriptionState subState, AssemblyManifest deployment, Version currentVersion)<br>   at System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState subState)<br>   at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, TempFile&amp; deployFile)<br>   at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)<br>   at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)</p> <p>COMPONENT STORE TRANSACTION DETAILS<br> No transaction information is available.</p> <p> </p> <p>I thought they fixed this problem with VS2008. If anyone has any ideas on what I can do to troubleshoot or fix this problem, I would greatly appreciate it.</p> <p align=left> </p> <p align=left>RobinDotNet</p> <p align=left>GoldMail.com</p>Tue, 09 Sep 2008 05:12:52 Z2008-10-16T17:29:36Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#7bf1c971-5796-4224-8e38-72743e5aaa7fhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#7bf1c971-5796-4224-8e38-72743e5aaa7fMary Lee - MSFThttp://social.msdn.microsoft.com/Profile/en-US/?user=Mary%20Lee%20-%20MSFTVS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2>hi Robin,</font></p> <p align=left> </p> <p align=left>i hope Beth was able to point you in the right direction.  i'll summarize the information here, so that other users can access it later.</p> <p align=left> </p> <p align=left>the ClickOnce expiration problem was fixed in .NET FX 2.0 SP1 and .NET FX 3.5.  your development computer has VS2008 and .NET FX 3.5, so the ClickOnce certificate problem wouldn't appear there.  however, if end user computers have an older version of the .NET FX, they would have to uninstall and reinstall your app.</p> <p align=left> </p> <p align=left>unfortunately, ClickOnce updates don't bootstrap the .NET Framework.  the .NET Framework would need to be installed via Windows Update, pushed out via SMS, or some other method.  there are some guidelines about .NET Framework deployment at <a title="http://msdn.microsoft.com/en-us/library/cc160716.aspx" href="http://msdn.microsoft.com/en-us/library/cc160716.aspx">.NET Framework 3.5 Deployment Guide for Application Developers</a> and <a title="http://msdn.microsoft.com/en-us/library/cc160717.aspx" href="http://msdn.microsoft.com/en-us/library/cc160717.aspx">.NET Framework 3.5 Deployment Guide for Administrators</a>.</p> <p align=left> </p> <p align=left>m.</p> <p align=left> </p>Wed, 10 Sep 2008 16:25:53 Z2008-09-10T16:25:53Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#2d633d51-3f1b-449b-96b2-81f1dfc48329http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#2d633d51-3f1b-449b-96b2-81f1dfc48329RobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2></font> </p> <p align=left><font face=Arial size=2>Actually, this isn't exactly right. So after moderating in this forum for the last few months, and continuously telling people that using VS2008 fixes the certificate problem, let me be exactly specific about what it fixes, because that is incorrect.</font></p> <p align=left> </p> <p align=left><strong>If you are doing manual updates (programmatic), your users will have to deinstall and reinstall. Period.</strong></p> <p align=left> </p> <p align=left><strong>If your users have .Net 2.0.50727.1434 or higher installed, they will have no problem when you update the certificate. To be running this version, they are running XP with .Net 2.0 SP-1 installed, OR they are running Windows Vista with .Net 3.5 installed. </strong></p> <p align=left> </p> <p align=left><strong>If your users are running Windows Vista without .Net 3.5 installed, your users will most likely have to uninstall and reinstall your application when you change the certificate.</strong></p> <p align=left> </p> <p align=left>The reason for this is that Windows Vista ships with a version of .Net 2.0 that is prior to .Net 2.0 SP-1 being released, or at least, that's what I presume, since none of the Windows Vista machines I am looking at have .Net 2.0 SP-1 installed. I also built a new Vista virtual machine to verify this.</p> <p align=left> </p> <p align=left>They imbedded .Net 2.0 SP-1 in the .Net 3.5 installation. This is why users running .Net 3.5 have no problem.</p> <p align=left> </p> <p align=left>Therefore, a computer running Windows Vista that does not have the .Net 3.5 Framework installed will have the original version of .Net 2.0 on it (version number 2.0.50727.312), and the update won't work when the certificate is changed.</p> <p align=left> </p> <p align=left>The only way to get that update to work is to push .Net 3.5 as a prerequisite. However, if you change the prerequisite, your user has to uninstall and reinstall anyway to pick up the new prerequisite, so the whole certificate problem is a non-issue.</p> <p align=left> </p> <p align=left>Note: I found the version number by going to C:\Windows\Microsoft.Net\Framework\v2.0.50727\mscorlib.dll and checking the property to get the version.</p> <p align=left> </p> <p align=left>For my company, suddenly changing to push .Net 3.5 as a prerequisite it a non-starter. All of our users have .Net 2.0, which is what we target. Our preliminary testing shows it takes 30 minutes or more to install .Net 3.5, and as has been noted in this forum, the progress bar doesn't move for quite a long time during that. The performance of that is unacceptable, especially when doing it just to fix a certificate problem.</p> <p align=left> </p> <p align=left>I have to say, this is very disappointing, as I thought this issue had been resolved. Oh, and in case you're wondering why we don't just install .Net 2.0 SP-1 on our Vista machines -- you can't. The download for that specifically does not work for Windows Vista. It's 3.5 or nothing. </p> <p align=left> </p> <p align=left>I hope this information helps someone else, and clarifies the problem with the certificates.</p> <p align=left> </p> <p align=left>RobinDotNet</p> <p align=left>GoldMail.com</p> <p align=left> </p> <p align=left> </p> <p align=left> </p> <p align=left> </p> <p align=left> </p>Wed, 10 Sep 2008 23:23:25 Z2008-09-10T23:23:25Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#27ae9c15-581d-4511-9531-c1c5e40fd3d5http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#27ae9c15-581d-4511-9531-c1c5e40fd3d5Jun Wang Timhttp://social.msdn.microsoft.com/Profile/en-US/?user=Jun%20Wang%20TimVS2008 SP-1 change certificate, user can't pick up update<p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Hi RobinDotNet</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>First, I think I can understand what you are feeling now for this problem. I’m sorry for that.</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Second, I really appreciate that you post this problem and precious information here for discussion.</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>However, to be honestly speaking, I think many people here in ClickOnce &amp; Deployment Forum have not as much experience as you, and probably cannot provide professional ideas for this problem. So, maybe you can consider reporting this problem in <a title="https://connect.microsoft.com/VisualStudio" href="https://connect.microsoft.com/VisualStudio">Microsoft Connect for Visual Studio</a>, see what engineers say there. You know what Microsoft Connect is used for, right?</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Based on my experience, I think we can change this thread into comment, can we?</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>But if you do not think so, please do not hesitate to change it back to question, and we’ll try our best to follow it.</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Again, really thank for your information for this issue.</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Thanks.</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3></font></span> </p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Best wishes</font></span></p> <p class=MsoNormal style="margin:0cm 0cm 0pt"><span lang=EN-US><font face=Calibri size=3>Jun Wang</font></span></p> <p align=left><font face=Arial size=2></font> </p>Mon, 15 Sep 2008 11:24:59 Z2008-09-15T11:24:59Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#eab4727d-5bfe-4d0f-8dd3-033680da2d4fhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#eab4727d-5bfe-4d0f-8dd3-033680da2d4fRobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2>I am actually working with someone on the ClickOnce team to see if we can come up with another solution. I am also still trying to come up with a workaround. If I find anything that could help someone else in the same predicament, I will post it.</font></p> <p align=left> </p> <p align=left>Putting it in Connect is a good idea; I will post it there as well, and put the link back in here. Feel free to change this to Comment, I will flip it back if I get a resolution. I have also made this thread sticky, because this question comes up A LOT in this forum, and this is a definitive answer.</p> <p align=left> </p> <p align=left>Thanks,<br>RobinS.</p> <p align=left>GoldMail.com</p>Tue, 16 Sep 2008 07:41:59 Z2008-09-16T07:41:59Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#4d49a6fe-0c91-420c-8053-9b3c8cd9e588http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#4d49a6fe-0c91-420c-8053-9b3c8cd9e588Mary Lee - MSFThttp://social.msdn.microsoft.com/Profile/en-US/?user=Mary%20Lee%20-%20MSFTVS2008 SP-1 change certificate, user can't pick up update<p align=left>hi Robin,</p> <p align=left> </p> <p align=left>i'm the current writer for the ClickOnce documentation, so i work with Saurabh on getting the correct information in the MSDN Library.  right now, it looks like you have more information than me.  if you don't mind, i'd like to include you in the doc review to make sure that this information is clear and discoverable.</p> <p> </p> <p align=left>m.</p>Tue, 16 Sep 2008 16:28:48 Z2008-09-16T16:28:48Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#60215715-8526-4d90-b821-6229a9047660http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#60215715-8526-4d90-b821-6229a9047660RobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p>Yes, I would be more than happy to do that. Saurabh has my e-mail information.</p> <p align=left> </p> <p align=left>RobinS.</p> <p align=left>GoldMail.com</p> <p align=left><font face=Arial size=2></font> </p>Tue, 16 Sep 2008 16:42:43 Z2008-09-16T16:42:43Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#19b689a7-88b9-49a2-a242-d09548de5876http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#19b689a7-88b9-49a2-a242-d09548de5876Emel Simsek - MSFThttp://social.msdn.microsoft.com/Profile/en-US/?user=Emel%20Simsek%20-%20MSFTVS2008 SP-1 change certificate, user can't pick up update<p align=left><font face=Arial size=2></font> </p>Also note that uninstall-reinstall will result in data loss as opposed to updating through url (URL to deployment manifest). So the best workaround would be to direct users to the deployment on the server in order to get the update.Wed, 15 Oct 2008 17:54:53 Z2008-10-15T17:54:53Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#d2900603-8b76-43ae-b779-e3b95b568cedhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#d2900603-8b76-43ae-b779-e3b95b568cedRobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p> </p> <p align=left>It depends on how you handle your data in the ClickOnce world. We don't keep it in the same folders as the ClickOnce deployment. We create a folder under the LocalApplicationData (it's a SpecialFolder) and keep it there. Thus, when the users uninstall and reinstall, the cached data is still available.Sure, it also leaves it behind if they deinstall and stop using our product, but that's a small price to pay for retaining it when we need to.</p> <p align=left> </p> <p align=left>Also, here is my solution to this whole issue. There was no way to get around the uninstall/reinstall, unless we have all of our users install the .Net 3.5 (SP1) framework, and we were not willing to do that, because it's so huge. Plus, you know you'll have one guy who won't do it, and the application will fail on him, and he'll be the most important customer. And if you have to push .Net 3.5 as a prerequisite, then you're having them reinstall anyway, so what's the point?</p> <p align=left> </p> <p align=left>1) Deploy the new version of the application to a new URL with the new certificate.</p> <p align=left> </p> <p align=left>2) Create a test certificate with the same key as the (expired) Verisign certificate. I used renewcert -- not the one in MSDN, because it doesn't work, but the one here: <a title="http://may.be/renewcert" href="http://may.be/renewcert">http://may.be/renewcert</a> </p> <p align=left> </p> <p align=left>This worked fine on one of my machines. On the other, it gave some error in the application event log about some C++ thing missing, so although I have VS2008 installed, I pulled the C++ redistributable from Microsoft.com and installed it, and it seemed to fix the problem.</p> <p align=left> </p> <p align=left>3) Change the old version of the application to do this at startup:</p> <p align=left> </p> <p align=left>    a) Show a dialog box telling the user what is about to happen.</p> <p align=left>    b) Uninstall itself.</p> <p align=left>    c) Fire off a process to install the new version.</p> <p align=left>    d) Exit the application.</p> <p align=left> </p> <p align=left>The uninstall code example came from here: <a title="http://www.jamesharte.com/blog/?p=11" href="http://www.jamesharte.com/blog/?p=11">http://www.jamesharte.com/blog/?p=11</a></p> <p align=left> </p> <p align=left>One thing to note. In the comments at the bottom, there is a bug fix:</p> <p align=left> </p> <p align=left>Tthe format string for getting the PublicKeyToken has a bug if there’s a 0 in the token. </p> <p align=left>It will drop the 0 if it’s the first part of the byte. This code will fix it:</p> <p> </p> <p align=left> <div class=codecontent> <div class=codesniptitle><span style="width:100%">Code Snippet</span></div> String.Format(&quot;{0:x2}&quot;, pk<img height=19 alt=Idea src="http://forums.microsoft.com/MSDN/emoticons/emotion-55.gif" width=19>); </div> <p align=left> </p> <p>which means this line of code in the GetPublicKeyToken method:</p> <p align=left>        <div class=codeseg> <div class=codecontent> <div class=codesniptitle><span style="width:100%">Code Snippet</span></div>pkt.Append(String.Format(&quot;<span class=str>{0:x}&quot;</span>, pk[i]));<br></div></div> <p align=left> </p><br> <p></p> <p align=left>should be this:</p> <p align=left> </p> <p align=left> <div class=codeseg> <div class=codecontent> <div class=codesniptitle><span style="width:100%">Code Snippet</span></div> <p align=left>pkt.Append(String.Format(&quot;{0:x2}&quot;, pk[i]));</p></div></div> <p align=left> </p> <p align=left> </p> <p align=left><font face=Arial size=2>4) Sign the old version with the test certificate you created with the same key using RenewCert and deploy it. This must be a required update (set minimum version).</font></p> <p align=left> </p> <p align=left>So what happens is the user runs the application, it picks up the update, it uninstalls itself, and invokes the installation of the new version.</p> <p align=left><font face=Arial size=2></font> </p> <p align=left><font face=Arial size=2>This worked great for us. The uninstall code includes code to click the OK button programmatically. The update that does the uninstall must be a forced update so the uninstall dialog only comes up with &quot;do you want to uninstall this&quot; rather than giving the user the option to roll back a version.</font></p> <p> </p> <p align=left>Our dialog box advised the user not to hit the OK button (it stops the app, and doesn't fire the install).</p> <p align=left> </p> <p align=left>I hope this helps someone else. Post back if you have any questions or problems, and I'll try to help you. </p> <p align=left> </p> <p align=left>RobinS.</p> <p align=left>GoldMail.com</p>Thu, 16 Oct 2008 17:25:07 Z2008-10-16T17:29:36Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#9973e49b-abe7-4840-ad46-f052e55f8550http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#9973e49b-abe7-4840-ad46-f052e55f8550RRittshttp://social.msdn.microsoft.com/Profile/en-US/?user=RRittsVS2008 SP-1 change certificate, user can't pick up update<p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">Please allow me to attempt to clarify this statement: &quot;<b style=""><i style=""><span style="color:#002060">If you are doing manual updates (programmatic), your users will have to deinstall and reinstall. Period</span>.</i></b>&quot;</span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">I got burned by an expired certificate last year using VS2005, ClickOnce, and the 2.0 Framework. I had to have several hundred users uninstall and reinstall my application in order for it to work again.</span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">To avoid this issue in the future, I upgraded the application to the 3.5 framework and started developing in VS2008 thinking all my issues would be gone. </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">30 days before my certificate was scheduled to expire, I got a new certificate. When I re-signed my code with the new certificate and published it to the usual location, the existing clients did not recognize that an update was available. </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">In VS2005, you could not even go to the original deployment URL and reinstall. You needed to uninstall and reinstall.</span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">In VS2008, however, you can go to original deployment URL and install without error.</span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'"> </span></p> <p class=MsoNormal style="margin:0in 0in 0pt"><span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif'">That is an improvement but the failure for ClickOnce to recognize the availability of the update is just as problematic. I now need to notify all of my customers that they need to reinstall the application from the URL.</span></p> <p class=MsoNormal style="margin:0in 0in 0pt"> </p> <p class=MsoNormal style="margin:0in 0in 0pt">I would love to be proven wrong on this so if anyone has any insight, I'd appreciate it greatly.</p>Thu, 23 Oct 2008 17:44:02 Z2008-10-23T17:44:02Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#d89b5fd8-c8b8-4254-aaa0-937ed2be67fbhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#d89b5fd8-c8b8-4254-aaa0-937ed2be67fbRobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p> </p> <p align=left>In my testing for this issue, I did not find this to be true. If your users have .Net 3.5 installed and you are using VS2008, you should be able to change the certificate and they should pick up the update. You are changing the version number, right? </p> <p align=left> </p> <p align=left>They should not need to go back to the url to install. It should look for updates when they run the application. </p> <p align=left> </p> <p align=left>RobinS.</p> <p align=left>GoldMail.com</p> <p align=left><font face=Arial size=2></font> </p>Fri, 31 Oct 2008 03:46:37 Z2008-10-31T03:46:37Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#45b2bf92-0053-4fe9-9b73-f13b7eb5864bhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#45b2bf92-0053-4fe9-9b73-f13b7eb5864bLavaginhttp://social.msdn.microsoft.com/Profile/en-US/?user=LavaginVS2008 SP-1 change certificate, user can't pick up updateI am having this problem.  My development machine is a Vista Ultimate machine with 3.5 SP1 and I am using VS 2008.  I am having the exact same problems people were having 3 years ago.  I thought they had this fixed in 2008?Fri, 29 May 2009 20:25:45 Z2009-05-29T20:25:45Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#fe02af65-7223-4920-9381-792edab5a6d5http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#fe02af65-7223-4920-9381-792edab5a6d5Lavaginhttp://social.msdn.microsoft.com/Profile/en-US/?user=LavaginVS2008 SP-1 change certificate, user can't pick up updateI am still having alot of problems with this.  My development machine is Vista and I am using VS 2008 with 3.5 SP1.  I tried the above suggestions on how to fix this and it still won't work.  I even created a totally new project and placed the source code in it from the old source code and tried to redeploy it like that and I still get that certificate message from my users and on also on my development machine.<br/> <br/> Why wasn't I able to redeploy it when I made new solution?????<br/> <br/> When I push the button  Create A New Test Certificate and put a password in it....does the password still need to be the same as with the original project?  How would it know?<br/> <br/> <br/> <br/> <strong>Nevermind...I figured it out.  But talk about a pain in the neck....</strong> <br/> <br/>Mon, 01 Jun 2009 17:50:19 Z2009-06-01T18:36:02Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#e77e9862-9f26-4905-9e6d-ad30bbf7ce69http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#e77e9862-9f26-4905-9e6d-ad30bbf7ce69Rob Ainscoughhttp://social.msdn.microsoft.com/Profile/en-US/?user=Rob%20AinscoughVS2008 SP-1 change certificate, user can't pick up update<p>This is a JOKE!!  Right?!  The ENTIRE purpose of ClickOnce applications is for &quot;EASY&quot; centralized deployment with &quot;SEAMLESS&quot; updating!!!!  <br/><br/>I too got the (under VS 2008 SP1 and .NET 3.5 SP1):<br/><br/><strong>Error 20 An error occurred while signing: Failed to sign bin\Debug\app.publish\\setup.exe. SignTool Error: ISignedCode::Sign returned error: 0x80880253</strong></p> <p><strong> The signer's certificate is not valid for signing.</strong></p> <p><strong>SignTool Error: An error occurred while attempting to sign: bin\Debug\app.publish\\setup.exe DOMICO Reports Manager<br/></strong><br/>So I look at the certificate and sure enough it expired about 5/30/09.  So if I use &quot;Create Test Certificate...&quot; this will allow me to publish my ClickOnce app, but will basically screw all my existing customers/clients and generate a TON of support calls to help them &quot;resolve&quot; this MAJOR problem with ClickOnce and certificates!!!<br/><br/>This isn't even funny any more.  I'm disgusted with Microsoft.  I'm serious disgusted -- this is beyond incompetence.<br/><br/>Rob</p>Wed, 10 Jun 2009 16:11:41 Z2009-06-10T16:11:41Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1e891424-164a-4f2d-a1e0-648252d52578http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1e891424-164a-4f2d-a1e0-648252d52578Aneefhttp://social.msdn.microsoft.com/Profile/en-US/?user=AneefVS2008 SP-1 change certificate, user can't pick up updateRobin,<br/> <br/> I tried this, and it was working fine.  but my problem is i had to push .net framework 3.5 along with this release as prerequisites, but when my applicaiton uninstalls and points to the new application.application  url it gives an error saying it needs windowsbase 3.0.0.0 installed in GAC, this is caused because of  yourapp.application file doesnt execute the setup.exe even though its a new installation. but when we call the setup.exe URL it prompts for the the .net framework installation too.<br/> <br/> isnt there any solution for this, may be check the .net framework in the client machine, and then decide the URL whether its pointing to setup.exe or the application manifest.Tue, 16 Jun 2009 16:39:42 Z2009-06-16T16:39:42Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#5584de25-6508-435b-bdb3-940cc4d301efhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#5584de25-6508-435b-bdb3-940cc4d301efRobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up updateYou sound really frustrated; apparently you did not read closely enough. I explain in my posts above how to create an extension of a current certificate in order to keep the ability to perform application updates. This is also explained in my blog, and the source code and article are available as a download here:<br/><br/><a href="http://robindotnet.wordpress.com/2009/03/30/clickonce-and-expiring-certificates/">http://robindotnet.wordpress.com/2009/03/30/clickonce-and-expiring-certificates/</a><br/><br/><strong>However, if you are deploying an application using VS2008 and targeting .Net 3.5, you don't even have to do this. All you have to do is replace the certificate with a new one and redeploy. Your clients will have no problem at all. This is also explained in my posts up above. </strong><br/><br/>So you're basically complaining about something you don't have to do, since you say you are targeting .Net 3.5 and using VS2008. All <strong>you</strong> have to do is create a new certificate, re-sign the deployment, and you're golden. What do you expect Microsoft to do when a certificate expires? If you have deployed your application with a Verisign certificate, for example, do you expect them to let you deploy a new version and sign it with an expired certificate? That removes the security that a certificate provides to the users to let them know that it is a valid deployment. <br/><br/>RobinDotNet<hr class="sig"><a href="http://robindotnet.wordpress.com">Click here to visit my ClickOnce blog!</a>Sat, 20 Jun 2009 22:48:53 Z2009-06-20T22:48:53Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#418704e1-44b2-41b1-9054-f83ce5bd9092http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#418704e1-44b2-41b1-9054-f83ce5bd9092RobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up updateIf you are changing the Framework you are deploying, you can have your users run your setup.exe again to install the new framework before picking up the update. Or you can use the code described above to programmatically uninstall the user's application and reinstall it, invoking the setup.exe to install the new version of the .Net Framework if needed.<br/><br/>You could have your application update the .Net Framework, but you can't know when all of your users are running the new version so you know you can change the target of your application to the new version. <br/><br/>RobinDotNet<br/><br/><hr class="sig"><a href="http://robindotnet.wordpress.com">Click here to visit my ClickOnce blog!</a>Sat, 20 Jun 2009 22:51:06 Z2009-06-20T22:51:06Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#5acd92de-8d3f-4950-bf34-f0b6ec30a342http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#5acd92de-8d3f-4950-bf34-f0b6ec30a342Aneefhttp://social.msdn.microsoft.com/Profile/en-US/?user=AneefVS2008 SP-1 change certificate, user can't pick up update<blockquote>If you are changing the Framework you are deploying, you can have your users run your setup.exe again to install the new framework before picking up the update. Or you can use the code described above to programmatically uninstall the user's application and reinstall it, invoking the setup.exe to install the new version of the .Net Framework if needed.<br/><br/>You could have your application update the .Net Framework, but you can't know when all of your users are running the new version so you know you can change the target of your application to the new version. <br/><br/>RobinDotNet<br/><br/> <hr class=sig> <a href="http://robindotnet.wordpress.com">Click here to visit my ClickOnce blog!</a></blockquote> Robin, <div><br/></div> <div>Thanks for your reply. i cannot tell the users to run the setup.exe,as you know  most of them are not aware of how things work. so all i did is , used the above method u mentioned to uninstall and re install the applicaiton.</div> <div><br/></div> <div>just a small update on the Deploymentutils class in the getUninstallString() method , i had to do the following changes:</div> <div><br/></div> <div><span style="font-family:Arial;font-size:12px;color:#555555"> <pre class=csharpcode style="font-size:small;color:black;font-family:consolas, 'Courier New', courier, monospace;background-color:#ffffff;padding:0px;margin:0px;border:0px initial initial"><span class=kwrd style="color:#0000ff;padding:0px;margin:0px;border:0px initial initial">if</span>(uninstallString.Contains(searchString)) <span class=kwrd style="color:#0000ff;padding:0px;margin:0px;border:0px initial initial">break</span>; </pre> <p style="padding-top:0px;padding-right:0px;padding-bottom:10px;padding-left:0px;line-height:20px !important;text-align:left;font-size:12px;margin:0px;border:0px initial initial"> </p> <p style="padding-top:0px;padding-right:0px;padding-bottom:10px;padding-left:0px;line-height:20px !important;text-align:left;font-size:12px;margin:0px;border:0px initial initial">to this:</p> <pre class=csharpcode style="font-size:small;color:black;font-family:consolas, 'Courier New', courier, monospace;background-color:#ffffff;padding:0px;margin:0px;border:0px initial initial"><span class=kwrd style="color:#0000ff;padding:0px;margin:0px;border:0px initial initial">if</span>(uninstallString.Contains(searchString) &amp;&amp; uninstallString.Contains(<span class=str style="color:#006080;padding:0px;margin:0px;border:0px initial initial">&quot;yourApp.application&quot;</span>)) <span class=kwrd style="color:#0000ff;padding:0px;margin:0px;border:0px initial initial">break</span>;</pre> <ol style="margin-top:0px;margin-right:0px;margin-bottom:15px;margin-left:0px;font-size:12px;line-height:20px;padding:0px;border:0px initial initial"> <li> <ol style="margin-top:0px;margin-right:0px;margin-bottom:15px;margin-left:0px;font-size:12px;line-height:20px;padding:0px;border:0px initial initial"> <li> <ol style="margin-top:0px;margin-right:0px;margin-bottom:15px;margin-left:0px;font-size:12px;line-height:20px;padding:0px;border:0px initial initial"> <p style="padding-top:0px;padding-right:0px;padding-bottom:10px;padding-left:0px;line-height:20px !important;text-align:left;font-size:12px;margin:0px;border:0px initial initial"> </p> <p style="padding-top:0px;padding-right:0px;padding-bottom:10px;padding-left:0px;line-height:20px !important;text-align:left;font-size:12px;margin:0px;border:0px initial initial"> </p> </ol></li> </ol></li> </ol></span></div> <div>because we use a single certificate to sign all our applications, and if we just check only for uninstall string, it might detect and uninstall another application with same public token key. and thanks again for the great work :).</div>Sun, 21 Jun 2009 06:39:34 Z2009-06-21T06:39:34Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#386fd98c-479d-4a22-a4ce-fa027797a54ehttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#386fd98c-479d-4a22-a4ce-fa027797a54eRob Ainscoughhttp://social.msdn.microsoft.com/Profile/en-US/?user=Rob%20AinscoughVS2008 SP-1 change certificate, user can't pick up update<p>Robin,<br/><br/>Couple issues and hence why Microsoft still &quot;don't get it&quot;.<br/><br/>A certificate is nothing more than paying someone else to validate my company - it does NOT guarantee my company is &quot;safe&quot;, it does NOT guarantee my company will not legally screw unsuspecting users, it does not guarantee a company is going to fill your Hard drive with useless advertisements, -- a certificate is no more than a Mafia run outfit (sanctioned by yet another Mafia run governing body) where company A says pay me $1200/yr and I'll say your a &quot;good guy&quot; and get you on the good guy list.  But ONLY Microsoft could introduce a very lame, unregulated, and inefficient system such as certificates to both developers and end users (most of whomd don't care, and don't know WTF a certificate is nor why they need to know).<br/><br/>Assuming every company/developer is bad or going to be quilty of wrong doing is a road that leads to paranoia -- this is not a good thing.  It's like Microsoft are just not believing the real world and continue on in some lala land/world of their own -- a world that is slowly coming apart as Microsoft are being hit financially and their products and OS is being rejected.  Anyway, that's a topic for another day.<br/><br/>So, now we have Microsoft Click Once Applications, default settings of Microsoft Browser to warn people that applications are &quot;deemed&quot; unsafe because they have not paid the Mafia fees (errr, some organization who does nothing to really validate a good vs. bad company) -- wooohooo, just think of all the jobs this must be creating while further reducing the public (end user) popluation - the very ones they need to survive.<br/><br/>Anyway, the only way to fix this problem was to have the end user install SP1 for .NET 3.5 OR uninstall existing app and re-install, pay $1200/yr for a coding certificate, republish clickonce solution.  My original application was .NET 2.0 based -- I upgraded my application it to .NET 3.5 and tried to publish it.  So yes, this IS very much a BIG problem for my company and defeats the entire purpose of what ClickOnce deployment is supposed to be about.  Great job Microsoft!!<br/><br/>Rob.</p>Mon, 22 Jun 2009 01:00:04 Z2009-06-22T01:01:09Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#ae74de41-8099-44f6-b0ad-d472604ab130http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#ae74de41-8099-44f6-b0ad-d472604ab130RobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p>Thanks. I have written an article and placed it on my blog; I'll update it with this information. :-)<br/><br/>RobinDotNet</p><hr class="sig"><a href="http://robindotnet.wordpress.com">Click here to visit my ClickOnce blog!</a>Thu, 09 Jul 2009 02:10:49 Z2009-07-09T02:10:49Zhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1a97fe75-ddf3-4ba2-911d-ccae93b5a533http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d#1a97fe75-ddf3-4ba2-911d-ccae93b5a533RobinDotNethttp://social.msdn.microsoft.com/Profile/en-US/?user=RobinDotNetVS2008 SP-1 change certificate, user can't pick up update<p>Hi, Rob,<br/><br/>I understand your frustration. I feel that there is so much spam and identity theft and malicious viruses out there that having a certificate to assure your user that the application comes from you is worth the price. <br/><br/>If you don't want to pay for a certificate, if you work in a corporate environment, the network support people who support the web servers can create an enterprise certificate that will accomplish the same purpose.<br/><br/>Another option is to install your created certificate (and my article above explains how to make one that lasts 10 years, so have a field day) on the user's computer. If you do that, it will recognize you as the publisher, and won't mark you as unknown. <br/><br/>I agree that this problem with changing certificates is a huge problem with ClickOnce, and it could have been alleviated by Microsoft issuing a Windows Update that installed SP-1 for .Net 2.0 on Windows Vista. I must admit that I feel they don't always understand that not everybody can update to the newest version of everything just because it's available (an 80MB  download!?). However, they are not pushing .Net 3.5 SP-1 as a critical Windows Update to every machine that has any version of .Net on it, which takes care of this problem, assuming the user is installing Windows Updates.<br/><br/>RobinDotNet</p><hr class="sig"><a href="http://robindotnet.wordpress.com">Click here to visit my ClickOnce blog!</a>Thu, 09 Jul 2009 02:17:25 Z2009-07-09T02:17:25Z