We have a WPF ClickOnce application that needs to be deployed both directly to user-desktops via ClickOnce (which works fine) AND as a Citrix Published Application (not a published desktop).

This citrix forums post has some discussion but no obvious answer to the problem.

If we just 'publish' a ClickOnce URL (from IE, for example) I don't understand how it would work - where does the executable get downloaded to? Even if it works, does every unique Citrix user download the application to unique disk locations?

A ClickOnce link might look like this, and trigger a boostrapper EXE that downloads the latest application EXE before starting it up. This seems difficult to do with the 'published application' model, which I think wants to point to a single, existing EXEcutable to run...


Does anyone know if it is definitely impossible? Or if possible, how to make it work?

UPDATE: we are using .NET 3.5 SP1

3 Answers 3


Couple things here.

When working with ClickOnce apps, pay particular attention to your profile situation. As of .NET Framework 3.0 you could not run ClickOnce apps with mandatory profiles. This was supposed to be remedied in .NET 3.5 but I haven't had the opportunity to verify that claim.

If you're using roaming profiles you have a couple options here. If you're running your TS in relaxed security mode, each user would download the ClickOnce app if you published it as an argument to Internet Explorer and run it out of their profile. In enhanced security mode, the TS will not allow the executable to run.

The second option would be to run it out of an Application Streaming profile if you have that feature available to you. You can then either pre-stage the ClickOnce app during the profile or give the users a streamed IE with relaxed security turned on for that streaming profile only and they would be able to download it themselves.

  • Thanks - we normally err on the side of 'high security'. I will have to read up on Application Streaming... what do you mean by "pre-stage"?
    – Conceptdev
    Jul 27, 2009 at 23:51
  • That will make more sense once you understand some basic concepts about Application Streaming. Here's an article from the Citrix KB: support.citrix.com/article/CTX112526 that explains the feature. Essentially, you do what the user would do upon first-run in such a way that when the next user opens the streamed application, the first-run process is already done for them.
    – Ben Kohn
    Jul 28, 2009 at 16:40
  • This worked! "each user would download the ClickOnce app if you published it as an argument to Internet Explorer and run it out of their profile". Now we are finding that a ClickOnce WPF app is awfully resource hungry on a Citrix server... but that's another story :) THANKS
    – Conceptdev
    Aug 6, 2009 at 5:38

I am a developer and we create a non clickonce package (set of files) specifically for citrix. Can you please give more details on how you configured IE (passing arguments, running out of their profile etc). I can then hopefully take this to our citrix administrators for them to understand and see feasibility of doing it.


I have a little Workaround for this:

  • create a separate Account
  • Log in into the account and install the clickonce Application
  • You'll find an *exe-file in the Appdata folder of this user. For me it was in %userprofile%\Appdata\local\2.0{string}{string}{clickoncename}. The path will certainly differ depending on installed application.

  • Create a new hidden share for this folder and give access to all users that should use the published Application.

  • publish the *exe-file over the hidden share

  • be happy that it works! :D

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .