<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Saurabh Pant's Weblog  : ClickOnce</title><link>http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx</link><description>Tags: ClickOnce</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Live From Redmond: Configuring ClickOnce to best work for your deployment scenario</title><link>http://blogs.msdn.com/saurabh/archive/2006/11/06/live-from-redmond-configuring-clickonce-to-best-work-for-your-deployment-scenario.aspx</link><pubDate>Mon, 06 Nov 2006 20:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1001860</guid><dc:creator>Saurabh</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/1001860.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=1001860</wfw:commentRss><description>&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Update 11/27]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;The talk is now available online &lt;A class="" title="Download - Configuring ClickOnce to best work for your deployment scenario" href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7%20Clickonce%20Tips%20and%20Tricks.wmv" mce_href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7 Clickonce Tips and Tricks.wmv"&gt;here&lt;/A&gt;&amp;nbsp;[Click &lt;A class="" title="Zipped Download - Configuring ClickOnce to best work for your deployment scenario" href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7%20Clickonce%20Tips%20and%20Tricks.zip" mce_href="http://download.microsoft.com/download/3/1/5/3158fa6f-2319-402a-9b07-e746e28a1f9d/Nov7 Clickonce Tips and Tricks.zip"&gt;here&lt;/A&gt; for zipped download]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Update 11/07]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Attaching the Slide Deck from the presentation&amp;nbsp;to the post.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;[Original Post]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Continuing with our highly popular "Live from Redmond" series I shall be presenting the following ClickOnce talk on Nov 7th ...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN&gt;Live From Redmond: Configuring ClickOnce to best work for your deployment scenario&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;7th Nov&amp;nbsp;2006 &lt;/STRONG&gt;[&lt;A class="" title="Click here to register" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312753&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US&amp;amp;Action=Preview" target=_blank mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032312753&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US&amp;amp;Action=Preview"&gt;Click&amp;nbsp;here to register&lt;/A&gt;]&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;The “ClickOnce”&amp;nbsp;feature&amp;nbsp;in&amp;nbsp;.Net 2.0 brings the ease of web deployment and update to Smart Client Applications&amp;nbsp;in&amp;nbsp;an enterprise.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Are you an enterprise developing Line Of Business applications&amp;nbsp;inhouse and want to know how best to deploy them internally using ClickOnce?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Are you a vendor and want to know how best to package your applications using ClickOnce so that they can be deployed by multiple enterprises?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;Is the cross browser support important to your application and you want to know what ClickOnce offers in this space?&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;This webcast will discuss recommendations from the ClickOnce team&amp;nbsp;on&amp;nbsp;how ot best leverage ClickOnce for common deployment scenarios like above.&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Arial','sans-serif'"&gt;It&amp;nbsp;will&amp;nbsp;discuss the options available with the current release of ClickOnce and how these scenarios are even better enabled in Orcas.&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1001860" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/saurabh/attachment/1001860.ashx" length="1280000" type="application/vnd.ms-powerpoint" /><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce coverage in the 'Windows Forms User Education' team blog </title><link>http://blogs.msdn.com/saurabh/archive/2006/05/28/609705.aspx</link><pubDate>Mon, 29 May 2006 05:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:609705</guid><dc:creator>Saurabh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/609705.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=609705</wfw:commentRss><description>&lt;P&gt;Jay Allen of the Windows Forms User Education team has some good coverage of ClickOnce issues on their team blog. Definately worth checking out ...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/winformsue/archive/category/11821.aspx"&gt;http://blogs.msdn.com/winformsue/archive/category/11821.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=609705" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce and FireFox</title><link>http://blogs.msdn.com/saurabh/archive/2006/03/02/541988.aspx</link><pubDate>Thu, 02 Mar 2006 13:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:541988</guid><dc:creator>Saurabh</dc:creator><slash:comments>30</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/541988.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=541988</wfw:commentRss><description>&lt;P&gt;Firstly sorry for the delay in this messaging from ClickOnce. Judging by the passionate opinions I have heard around the community on this issue, this is a blog we should have posted a while back. &lt;/P&gt;
&lt;P&gt;[Hanselman's Blog - &lt;A href="http://www.hanselman.com/blog/PermaLink.aspx?guid=7ce42ccd-e531-4d43-a93f-73483c0afd3d"&gt;http://www.hanselman.com/blog/PermaLink.aspx?guid=7ce42ccd-e531-4d43-a93f-73483c0afd3d&lt;/A&gt;]&lt;BR&gt;[Sven Groot's Blog - &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=138273"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=138273&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;[Lady bug - &lt;A href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=5b309bf8-370d-4571-8ce2-aaebb525488b"&gt;http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=5b309bf8-370d-4571-8ce2-aaebb525488b&lt;/A&gt; ]&lt;/P&gt;
&lt;P style="MARGIN-RIGHT: 0px"&gt;Geting to business; In the V2.0 release of the Framework, ClickOnce &lt;STRONG&gt;does not&lt;/STRONG&gt; have support for FireFox.&amp;nbsp;&lt;BR&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I do discuss later in this post how application publishers can use the ClickOnce shortcut files to allow FireFox users to install Clickonce applications.&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;ClickOnce &lt;STRONG&gt;does&lt;/STRONG&gt; work on machines where FireFox is the default browser,&amp;nbsp;if the user clicks on the deployment manifest in IE. &lt;BR&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;There is an issues users hit here if their application carries a bootstrapper package, again a workaround is mentioned&amp;nbsp;later in the post.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;And yes we are actively looking into &lt;STRONG&gt;remedying&lt;/STRONG&gt; this in the &lt;STRONG&gt;next release&lt;/STRONG&gt; of the Framework. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What happens when I click on a ClickOnce deployment in FireFox&lt;/STRONG&gt;?&lt;/P&gt;
&lt;P&gt;ClickOnce provides an implemention of the IE mime handler interface for the mime type &lt;EM&gt;application/x-ms-application&lt;/EM&gt; which is associated with .application files on servers hosting ClickOnce application. Hence when a user clicks on a .application in IE our mime handler is invoked which downlods the .application file and fires up the ClickOnce install.&lt;/P&gt;
&lt;P&gt;When a user clicks on a .application in FireFox the FireFox equivalent of the Open/Save dialog comes up. Once the .application file is downloaded to the local&amp;nbsp;macine&amp;nbsp;(to the FireFox cache on Open and to a user specified location on Save)&amp;nbsp;it is run form there firing up ClickOnce. ClickOnce now parses the locally downloaded .application and tries to download the actual application manifest it refers to. If the .application&amp;nbsp;contains a relative path to the application manifest ClickOnce will try to find it relative to the .application in the FireFox temp folder and fail. If it is a full Url to the application manifest ClickOnce fails anyway, this time due to a security check we have that does not allow the .application and the corresponding application bits to be in different security zones.&lt;/P&gt;
&lt;P&gt;There have been Plugins written by the FireFox community &lt;BR&gt;[e.g. &lt;A href="http://www.softwarepunk.com/cohelper/"&gt;http://www.softwarepunk.com/cohelper/&lt;/A&gt;] where they parse the application after it has been downloaded and read the deploymentProvider Url from it. They then use the undocumented Apis&amp;nbsp;for invoking ClickOnce with the URL as a parameter [rundll32 dfshim.dll,ShOpenVerbApplication URL ]. I have never tried the approach above, but would believe it works. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;From the ClickOnce teams perspective we would advise users against parsing the ClickOnce manifest and relying on its format for we could inadvertently break you in future manifest updates. Also since the &amp;lt;deploymentProvider&amp;gt; tag is only needed in Shell Visible installed ClickOnce applications this solution does not work for Online ClickOnce Apps.&lt;/P&gt;
&lt;P&gt;For out next release we are looking into what we can do to provide a simple public way for the FireFox community to build plugins for ClickOnce support. Stay tuned ...&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do ClickOnce Shortcuts help me get ClickOnce support on FireFox?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Anytime a shell visible installed ClickOnce App is downloaded to a machine, we create a ClickOnce shortcut (.AppRef-MS) for the application under Progrmas-&amp;gt;Publisher-&amp;gt;Product.AppRef-MS.&lt;BR&gt;The contents of this shortcut file look something like this -&lt;A href="http://foo/Bar/Dummy.Application#Dummy.app"&gt;http://Foo/Bar/Dummy.Application#Dummy.app&lt;/A&gt;, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX, processorArchitecture=msil&lt;BR&gt;As you can see it contains the Url&amp;nbsp;to the .application and the identity of the deployment manifest modulo version.&lt;/P&gt;
&lt;P&gt;These ClickOnce shortcuts&amp;nbsp;are designed so that they can be&amp;nbsp;emailed to people&amp;nbsp;and when&amp;nbsp;ckicked on,&amp;nbsp;on&amp;nbsp;a machine which does not have the corrsponding application already installed they cause the application to be installed and launched.&lt;/P&gt;
&lt;P&gt;Now asuming you have an ClickOnce application (Shell Visible Installed App - Not an Online App) you want to publish to your clients who use FireFox, all you need to do is generate the shortcut file and publish it on your server (If you have both IE and FireFox users you could have a seperate link saying "FireFox users click here" so that IE users still get the default behavior). Once the user click on an .appref-MS in FireFox the Open/Save dialog comes up. Once the .appref-MS has been downloaded to the local machine and run it will invoke ClickOnce, which in turn will download the .application from the URL specified in the shortcut and install the App. &lt;/P&gt;
&lt;P&gt;This solution works with out any FireFox changes. Remember though that .appref-MS files can only be generated for Shell Visible Installed ClickOnce Apps.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;What about client machines where FireFox is the default browser but the user clicks on the .application in IE?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This scenario just works.&lt;/P&gt;
&lt;P&gt;There is one caveat though. If your Application carries a bootstrapper along with it to install prerequisites before the actual ClickOnce install, then your scenario might be broken. The bootstrapper after it has installed the prerequisites starts the actual ClickOnce install by launching the .application URL in the default browser (in this case FireFox) even if the user had originally clicked on an IE session to launch the bootstrapper.&lt;/P&gt;
&lt;P&gt;There however is a easy workaround for this [http://channel9.msdn.com/ShowPost.aspx?PostID=138879] which I have recommended to users earlier with good success.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Again in closing let me&amp;nbsp;reitterate, we are actively working on having a better XBrowser story for our next release.&lt;/P&gt;
&lt;P&gt;Comments are welcome as usual.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=541988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce and permission elevation prompting in the internet zone</title><link>http://blogs.msdn.com/saurabh/archive/2006/02/28/540878.aspx</link><pubDate>Wed, 01 Mar 2006 01:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:540878</guid><dc:creator>Saurabh</dc:creator><slash:comments>22</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/540878.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=540878</wfw:commentRss><description>&lt;P&gt;The Decision -&amp;nbsp;&lt;BR&gt;With the .Net Framework V2.0 release of ClickOnce, any ClickOnce App deployed from the internet zone can prompt the user for permission elevation.&lt;/P&gt;
&lt;P&gt;For the earlier Beta2 release of ClickOnce, prompting had been explicitly disabled for internet applications that were&amp;nbsp;not Authenticode signed. We consciously reversed this decision for the final release.&lt;/P&gt;
&lt;P&gt;This decision of Microsoft has been questioned by a few in the ClickOnce/Security community. Though they do not agree with our decision, most of these blogs do try to be balanced and put forth both sides of the argument. However reading through a few community posts generated by these blogs, I&amp;nbsp; did get a sense that there was a perception that this was a change pushed into the release by Microsoft at the last minute due to pressure from a few large customers. &lt;/P&gt;
&lt;P&gt;I plan to articulate out here more clearly our thinking behind this change and hopefully debunk this perception.&lt;/P&gt;
&lt;P&gt;The Thinking Behind It - &lt;BR&gt;Non authenticode signed Internet ClickOnce applications were prevented from elevating in Beta2 with the primary goal to get user feedback on this decision so we could make a more informed decision for the final release.&lt;/P&gt;
&lt;P&gt;The Beta2 feedback helped us realize that it was important to have a consisitent IE security model for Managed and UnManaged exes, diverging in the model was confusing and muddled our security messaging.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We also got a strong push to enable this scenario from hobbyist/non commercial/community/open source App developers who wanted to deploy their applications using ClickOnce but could not afford (both in terms of time and money) to get an Authenticode certificate.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Let's consider the scenario below ...&lt;BR&gt;Jen is a .Net entusiast and a golf fanatic. She writes a .Net Golf Handicap calculator that unfortuantely needs Intranet (Not Internet) zone permissions to run. Jen wants to share this App on her homepage with her golfing friends and would also like them to get updates as she adds new functionality to her program; ClickOnce is the ideal choice of deployment technology for her.&lt;/P&gt;
&lt;P&gt;If ClickOnce forced Jen to have an Authenticode certificate before she could share her App she would soon be looking at other deployment options. She could decide to just write the App in native code and share the exe. The native exe (even a Managed exe for that matter) would now be downloaded and run with Fulltrust on local machine, not a big security win. &lt;/P&gt;
&lt;P&gt;Today instead Jen can use ClickOnce to downloaded her App and run in the Intranet sandbox. She also gets to keep her app current with ClickOnce and potentially push down required updates for issues she wants patched immediately. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;If we flipped the scenario around to where Jen was the author of a malicious Addware App and wanted to prompt the user from the internet zone she can very easily do it today. ClickOnce has not opened up a new security hole here. We just extent the current IE security model. There are no default scenarios where you can cause a user prompt to come up using ClickOnce where you couldn't for unmanaged Exes.&lt;/P&gt;
&lt;P&gt;Also there have been comparisions of ClickOnce with ActiveX in the past and the fact that unsigned ActiveX controls from the internet zone are now blocked by IE has been used as an argument for pushing for similar behavior in Clickonce. ClickOnce and ActiveX are naturally two totally independent technologies, but if parallels have to be drawn we see ourselves closer to exes than ActiveX, and hence as discussed above have tried to maintain the same security expereince that currently exists for exes.&lt;/P&gt;
&lt;P&gt;Configuring Prompting - &lt;BR&gt;The current ClickOnce prompting model is highly configurable.&lt;BR&gt;Enterprises can also specifically disable prompting for&amp;nbsp;particular zones or they can use the trusted publisher list to whitelist their ClickOnce applications to run without prompting and disable all prompting. &lt;BR&gt;[MSDN - &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp&lt;/A&gt;]&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=540878" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>File Patching</title><link>http://blogs.msdn.com/saurabh/archive/2006/01/25/517613.aspx</link><pubDate>Thu, 26 Jan 2006 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:517613</guid><dc:creator>Saurabh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/517613.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=517613</wfw:commentRss><description>&lt;P&gt;While upgrading from v1.0 to v2.0 of an ClickOnce application,&amp;nbsp;files/assemblies that have remained unchanged (have the same hash) across the update are not redownloaded from the server. Instead they are just copied over locally in the Clickonce store from the v1.0 to v2.0 app folder.&amp;nbsp;This is totally transparent to the user except for the Dowload Progress Bar moving much quicker&amp;nbsp;due to the local copy.&lt;/P&gt;
&lt;P&gt;Keep in mind file patching is only across two versions of the same application i.e. the Deployment Manifest of the two applications has to have&amp;nbsp;the same identity, modulo version. &lt;BR&gt;Also the patching is at file level not the binary level, hence if only a few bits in a dll have changed Clickonce will still download the entire dll.&lt;/P&gt;
&lt;P&gt;File Patching also works for assemblies downloaded using the DownloadFileGroup() APIs.&lt;/P&gt;
&lt;P&gt;File Patching does NOT work currently for Data files (writeableType="applicationData").&lt;/P&gt;
&lt;P&gt;Know Issue - &lt;BR&gt;Our FilePatching model for assemblies (even strong assemblies) is based entirely on file hash. &lt;BR&gt;Projects when rebuilt in VS often cause the same assemblies (exacly same source) to have different hashes. Hence if you are rebuilding your entire v2.0 solution its possible that assemblies that have not changed in terms of functionality will still have a different hash and hence be redownloaded by ClickOnce instaed of being copied locally.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=517613" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce Team Blog</title><link>http://blogs.msdn.com/saurabh/archive/2006/01/11/511777.aspx</link><pubDate>Thu, 12 Jan 2006 01:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511777</guid><dc:creator>Saurabh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/511777.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=511777</wfw:commentRss><description>&lt;P&gt;The ClickOnce team now has a team blog at &lt;A HREF="/clickonce"&gt;http://blogs.msdn.com/clickonce&lt;/A&gt;&lt;BR&gt;Keep checking it out for tips and tricks, announcamants and other information on the ClickOnce technology and team.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=511777" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>Top X ways to learn about ClickOnce</title><link>http://blogs.msdn.com/saurabh/archive/2005/10/28/486106.aspx</link><pubDate>Fri, 28 Oct 2005 11:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486106</guid><dc:creator>Saurabh</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/486106.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=486106</wfw:commentRss><description>&lt;P&gt;Sameer Bhangar the Test Lead on ClickOnce project recently internally sent out a list of the top ways to learn about ClickOnce. &lt;BR&gt;Is by no way the authoratative or complete list but definately good starting point. This should serve as a good resource for anyone ramping up on ClickOnce. &lt;BR&gt;Feel free to recommend other resources&amp;nbsp;and I'll add them in here. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Top X ways to learn about ClickOnce - &lt;/P&gt;
&lt;P&gt;ClickOnce Discussion Forums:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; External forum - &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6"&gt;http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6&lt;/A&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - As I as have mentioned earlier in my blogs, the forum is the ideal site to go to with ClickOnce issues, bugs, feature request and even general discussion on App Model/Deployment. It is looked at regularly by the ClickOnce product team who do a great of following up on the posts.&lt;/P&gt;
&lt;P&gt;Microsoft sites:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Smart Client Dev Center Home: &lt;A href="http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx"&gt;http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSDN content on ClickOnce - &lt;A href="http://msdn2.microsoft.com/en-us/library/wh45kb66(en-us,vs.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/wh45kb66(en-us,vs.80).aspx&lt;/A&gt;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Video of Jamie Cool the PM on the Winforms/ClickOnce team demoing ClickOnce - &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=15303"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=15303&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Article by Brian Noyes on configuring trust with ClickOnce - &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Article on ClickOnce and Regfree COM - &lt;A href="http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Overview article by Brian Noyes - &lt;A href="http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/"&gt;http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/&lt;/A&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Bit old so some specifics may have changed but overall is accurate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Non-Microsoft sites:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClickOnce Publisher Certificates - &lt;A href="http://geekswithblogs.net/kobush/archive/2005/05/30/41068.aspx"&gt;http://geekswithblogs.net/kobush/archive/2005/05/30/41068.aspx&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Links to various ClickOnce related material - &lt;A href="http://www.installsite.org/pages/en/clickonce.htm"&gt;http://www.installsite.org/pages/en/clickonce.htm&lt;/A&gt;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;VS Support for ClickOnce - &lt;A href="http://www.ondotnet.com/pub/a/dotnet/2004/10/11/clickonce.html"&gt;http://www.ondotnet.com/pub/a/dotnet/2004/10/11/clickonce.html&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Another VS walkthrough - &lt;A href="http://www.15seconds.com/issue/041229.htm"&gt;http://www.15seconds.com/issue/041229.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Few Blog references to ClickOnce:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Saurabh's blog - &lt;A HREF="/saurabh/"&gt;http://blogs.msdn.com/saurabh/&lt;/A&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - The one stop Authoratative ClickOnce Resource (well Sammer's mail didn't&amp;nbsp;say&amp;nbsp;so&amp;nbsp;but it should have :-) ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://mtaulty.com/blog/(5re21u3e1v3wjmm1qhgybqfo)/archive/2004/07/05/524.aspx"&gt;http://mtaulty.com/blog/(5re21u3e1v3wjmm1qhgybqfo)/archive/2004/07/05/524.aspx&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://mtaulty.com/blog/(32qtav45kx5a5zeb2taste3j)/archive/2004/07/06/525.aspx"&gt;http://mtaulty.com/blog/(32qtav45kx5a5zeb2taste3j)/archive/2004/07/06/525.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=486106" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>MSI installed ClickOnce Apps?</title><link>http://blogs.msdn.com/saurabh/archive/2005/08/02/446711.aspx</link><pubDate>Tue, 02 Aug 2005 20:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:446711</guid><dc:creator>Saurabh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/446711.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=446711</wfw:commentRss><description>&lt;P&gt;Am at TechReady1 conference in Seattle today, helping proctor the ClickOnce labs. The labs have not been too busy so With some free time at hand am back to ramblings on Clickonce ....&lt;/P&gt;
&lt;P&gt;MSI installed ClickOnce Apps?&lt;/P&gt;
&lt;P&gt;This is a scenario request that keeps comming up. &lt;BR&gt;Currently there is no support around installing an application using MSI and updating it via Clickonce.&lt;BR&gt;A user could however have an MSI package that installs that configures the machine and then fires off a ClickOnce .application to install the App which can then be updated via ClickOnce.&lt;BR&gt;Alternatively ClickOnce could carry an MSI package as a custom bootstraper, so that it will be run before the Application is installed.&lt;/P&gt;
&lt;P&gt;Both the solutions above though break the isolated, non-impactful ClickOnce Application Model and do not have a clean unistall story. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=446711" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>The manifest has no XML signature</title><link>http://blogs.msdn.com/saurabh/archive/2005/07/06/436208.aspx</link><pubDate>Wed, 06 Jul 2005 22:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:436208</guid><dc:creator>Saurabh</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/436208.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=436208</wfw:commentRss><description>&lt;P&gt;Seeing the following ClickOnce error log?&amp;nbsp; Well your ClickOnce manifests are not signed ...&lt;/P&gt;
&lt;P&gt;System.Deployment.Application.InvalidDeploymentException (ManifestParse)&lt;BR&gt;&amp;nbsp; - Exception reading manifest from &lt;A href="http://foo.application/"&gt;http://foo.application&lt;/A&gt;: the manifest could be invalid or the file could not be opened.&lt;BR&gt;&amp;nbsp; ...&lt;BR&gt;&amp;nbsp; --- Inner Exception ---&lt;BR&gt;&amp;nbsp; System.Deployment.Application.ValidationFailedException (Unknown subtype)&lt;BR&gt;&amp;nbsp; - The manifest has no XML signature.&lt;/P&gt;
&lt;P&gt;But I did sign the manifest while publishing in VS?&lt;/P&gt;
&lt;P&gt;Check if your project includes assemblies with spaces in their name. &lt;BR&gt;There is a known Beta2 bug which causes VS to barf on signing manifest if the project includes Assemblies with spaces in the name.&lt;BR&gt;Renaming the Assemblies in the easy workaround.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=436208" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce MSDN WebCast</title><link>http://blogs.msdn.com/saurabh/archive/2005/06/28/433403.aspx</link><pubDate>Tue, 28 Jun 2005 20:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433403</guid><dc:creator>Saurabh</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/433403.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=433403</wfw:commentRss><description>&lt;P&gt;Just got out of a ClickOnce MSDN WebCast titled "Building a ClickOnce Toolkit".&lt;BR&gt;It was hosted by William Steele and you can get more info on it, on his blog at&lt;BR&gt;&lt;A href="/wsteele/archive/2005/06/28/433313.aspx"&gt;http://blogs.msdn.com/wsteele/archive/2005/06/28/433313.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I was primarily there to represent the ClickOnce development team and take questions. &lt;BR&gt;An interestign experience overall, great to see the buzz around ClickOnce. &lt;/P&gt;
&lt;P&gt;Some interesting questions from users, will try to address them in my future blogs.&lt;/P&gt;
&lt;P&gt;Am even more convinced that we need a official ClickOnce Team blog ... Need to get more people blogging.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=433403" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>ClickOnce online discussion forum</title><link>http://blogs.msdn.com/saurabh/archive/2005/06/17/430243.aspx</link><pubDate>Fri, 17 Jun 2005 23:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430243</guid><dc:creator>Saurabh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/430243.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=430243</wfw:commentRss><description>&lt;P&gt;The ClickOnce Online discussion forum is at - &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6"&gt;http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It is looked at&amp;nbsp;regularly by the ClickOnce product team and is ideal to get ansewers to your ClickOnce design/implementation questions.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=430243" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>Demistify the ClickOnce update story</title><link>http://blogs.msdn.com/saurabh/archive/2005/06/13/428749.aspx</link><pubDate>Tue, 14 Jun 2005 06:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428749</guid><dc:creator>Saurabh</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/428749.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=428749</wfw:commentRss><description>&lt;P&gt;Updates for ClickOnce apps are controlled by the following XML tags in the Deployment manifest.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;lt;subscription&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;beforeApplicationStartup&amp;gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;update&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;expiration maximumAge="6" unit="hours" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/update&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/subscription&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;beforeApplicationStartup&amp;gt; and &amp;lt;update&amp;gt; are mutually exclusive functionality wise though not in Schema. When both tags are present &amp;lt;beforeApplicationStartup&amp;gt; wins.&lt;BR&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;BeforeApplicationStartup - &lt;BR&gt;When this tag is present in an application's deployment manifest, at every activation of the application via the desktop shortcut, Clickonce does an update check. If no update is available the application is launched else the Update confirmation Dialog (more on this later) is displayed. &lt;/P&gt;
&lt;P&gt;Expiration&amp;nbsp; - &lt;BR&gt;MaximumAge defines how often ClickOnce should check for updates for an Application. ClickOnce keeps track of the last time the update check took place for the application. On application launch if CurrentTime - LastCheckForUpdateTime &amp;gt; MaximumAge, a thread is fired up to perform the update check in the background. Note the check is non blocking and the Application launch is not blocked. If an update is detected (Updated deployment manifest version) a property is set in the clickonce store indicating that an update for the app is available. Next time when the app is launched from the Desktop shortcut the Update Confirmation dialog is displayed.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;The UpdateConfirmationDialog - &lt;BR&gt;There are three user actions possible::&lt;/P&gt;
&lt;P&gt;1. Clicking Ok&lt;BR&gt;Clicking OK on the Dialog downloads the Updated Application and launches it.&lt;BR&gt;The detected update is considered a Required Update if the &amp;lt;minimumRequiredVersion&amp;gt; set on the updated deployment is greater than the&amp;nbsp;version the user has installed locally on the machine. For required updates no UpdateConfirmationDialog is displayed i.e. The user is not provided with an option to skip the update, rather is assumed to have clicked "Ok" on the dialog.&lt;/P&gt;
&lt;P&gt;2. Clicking Skip&lt;BR&gt;Clicking on Skip launches the locally installed version of the application AND makes sure you are not prompted for that particular update for a week.&lt;/P&gt;
&lt;P&gt;To reitterate, clicking on Skip is equivalent to "Do not prompt me for this particular update for a week". The week time limit is non configurable.&lt;BR&gt;Note that you will no be "Prompted" for a week - however clickonce will still check for updates based on you maxAge or beforeApplicationStartup setting. If it detects a newer Update (You skipped V2, however now V3 is available) you will be prompted for the new update.&lt;/P&gt;
&lt;P&gt;3. Closing the Dialog (Clicking on X)&lt;BR&gt;Closing the dialog launches the locally installed copy of the application - However it does NOT set the "No prompt for a week" setting. So the next time you try to launch the application you are reprompted for the same update.&lt;/P&gt;
&lt;P&gt;NOTE - By design if your application would like tighter control of its update lifecycle it can opt out of Clickonce updates by having an empty &amp;lt;subscription&amp;gt; tag. It can then use the ApplicationDeployment Update APIs for update management. &lt;BR&gt;(Unfortunately a bug in Beta2 causes an empty/missing &amp;lt;subscription&amp;gt; section to cause the APIs to throw an exception saying the App is non updatable - The best workaround is to have a &amp;lt;subscription&amp;gt; section with a real high value for &amp;lt;maxAge&amp;gt;)&lt;/P&gt;
&lt;P&gt;NOTE - Clicking on a URI to the .application directly always gives you the latest copy on the server independent of the update logic above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428749" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>Concurrency restrictions in the ClickOnce (System.Deployment.Application) APIs</title><link>http://blogs.msdn.com/saurabh/archive/2005/06/13/428667.aspx</link><pubDate>Tue, 14 Jun 2005 02:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428667</guid><dc:creator>Saurabh</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/saurabh/comments/428667.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh/commentrss.aspx?PostID=428667</wfw:commentRss><description>&lt;P&gt;UpdateAsync/CheckForUpdateAsync/DownloadFileGroupAsync are the&amp;nbsp;Async APIs&lt;/P&gt;
&lt;P&gt;Update APIs - &lt;/P&gt;
&lt;P&gt;UpdateAsync()/CheckForUpdateAsync() CANNOT be invoked if either one of them is already in progress. Exception thrown -InvalidOperationException&lt;BR&gt;i.e An updateAsync() call cannot be made when either a UpdateAsync()/CheckForUpdateAsync() call is in progress within the same process and vice versa.&lt;/P&gt;
&lt;P&gt;There is no API/Property to query ClickOnce and find out if an Update/CheckForUpdate operation is in progress. Users can catch the exception or programatically keep track of Update/CheckForUpdate calls withing their process.&lt;/P&gt;
&lt;P&gt;OnDemand APIs -&lt;/P&gt;
&lt;P&gt;DownloadFileGroupAsync CAN be called concurrently with UpdateAsync/CheckForUpdateAsync methods.&lt;BR&gt;DownloadFileGroupAsync(“Foo”) and DownloadFileGroupAsync(“Bar”) calls CAN be made concurrently within the same process.&lt;BR&gt;DownloadFileGroupAsync(“Foo”) and DownloadFileGroupAsync(“Foo”) CANNOT be made concurrently – again you get an InvalidOperationException.&lt;/P&gt;
&lt;P&gt;All restrictions discussed above are for API calls within the same process – there are no interprocess global concurrency restrictions.&lt;BR&gt;Similarly there are no concurrency restrictions between the API calls and ClickOnce scenario updates,&amp;nbsp;so while ClickOnce is downloading an update, the application could also be simultaneously downloading the update using the APIs.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428667" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item></channel></rss>