How to Publish a Microsoft ClickOnce Application with Remote Desktop Services
Microsoft CilckOnce applications are a unique breed. They are isolated, self-contained apps that can be self-updating, and generally have minimal impact on a user’s system. When installing or running them on a local system the process is generally very easy – simply double click the program, and it should run (after it initially installs, if need-be).
What happens if you run a Remote Desktop Services or Remote Web Workplace environment and need to publish a ClickOnce app to your users, though? Publishing regular .exe files is easy, but ClickOnce apps can be a challenge. Luckily, there is an easy workaround:
- Open up a text editor on your RDS server and add a line that contains the path to the ClickOnce application. The path can be on the local RDS Server or a network share. For example, our ClickOnce program automatically installs its icon in the system’s start menu, so we used the following path in the file:
- Save the file with a .CMD extension on your RDS server in a location that you will remember
- Publish a new app from Server Manager (Navigate to Server Manager > Remote Desktop Services > Collections > Remote Apps, then click the Tasks button under RemoteApp Programs, and select Publish RemoteApp Programs)
- Your RDS server will start searching for available applications that it can publish, but you’ll need to manually select the .cmd file you created in step 2. So, click on the Add button, and then locate the .cmd file you created, then click next
- Click Publish!
Congratulations, your ClickOnce app is now published! Of course you’ll probably want to limit the application to a certain group of users or make other tweaks to suit your needs, but this should get you up and running fairly quickly.
About the Author
Frank is an experienced IT director of 15+ years who has been working with computers since the age of 13. While hardware and networking were the base of his career, he also enjoys programming, and is currently focused on .NET Core, Angular, and Blazor. He enjoys constantly learning something new, and helping others do the same.