Uninstall/RollBack ClickOnce Application if user fails to provide required information - deployment

Scenario:
I have Window Application to be installed/updated from website. User needs to enter some information for user and configure the application during the installation. Application will uninstall/rollback, if user fails to provide the required information.
ClickOnce Deployment comply to install and update application automatically from website. But I am not able to get user input (or execute my custom WinForms) prior Application installation.
Question:
How to execute custom WinForms before installing Application with above requirements?
OR
How to uninstall ClickOnce Application, If user fails to provide the mandatory information?
OR
Any other to implement above?

Finally, We have added a separate layer to get user input and process data. User will be able to download and execute that exe without installation it. Application will be downloaded, If everything goes well..
Regards,
Aman

Related

Backup configuration page not loading

I upgraded my app service to Standard a few days ago. However, when I go to the backup configuration page, it never finishes loading. I just get the dots across the top of the screen forever.
According to your description, I have checked this issue. Per my test, I found I could not configure my backups for my mobile app on Azure Portal as follows:
While for web app, I could configure the backups via Azure Portal as follows:
Then I Use REST to back up and restore App Service apps and Use PowerShell to back up and restore App Service apps to check this issue. After configure the backup for my mobile app, I could see the Configure button on Azure Portal, but when I try to change the backup configuration, I encountered the same issue as you mentioned.
Per my understanding, you could leverage the powershell command Edit-AzureRmWebAppBackupConfiguration for a simple way to edit your Backup Configuration, you could refer to here for more details.

ClickOnce deploy - how does it check for application updates?

I know that I can publish a ClickOnce setup that can check for application updates. I will have to provide a location where it will check for updates. I want to know how does it actually check?
My scenario: I would like to distribute my ClickOnce setup.exe from my locked-web-portal (needs user to signin). Can I just host a particular manifest at http:/www.mywesbite.com/public_dir/something_here or do I have to host the entire ClickOnce stuff at that public link?
I do not want to host my ClickOnce setup.exe on a public link because I need users to signin to access that setup.exe
Let me know if my question is vague.

Automated deployment of web site

I'm planning to do an automated deployment of a website,but im kind of stuck at this moment. I have looked at MS-Deploy, it got all the functions for deploying Website. I have a created a Web application package (.ZIP file) and I tested this on my local machine it is deploying website i.e
Create Web application under default website
Publishing files in c:\inetpub\wwwroot directory
Set ACLs on directories,etc
But i want to achieve few more extra steps for example:
Check whether Web application exists in Default Website, if not
create a Web application
Check whether Application pool exists, if not create a App pool
(given name) with a specific credentials and Assign App-pool to Web
application
Before it deploys take a backup copy of existing Web application (IF
exists)
publish offline page (app_offline.htm)
publishing the files to application directory
Replace the AppSettings section(in web.config file) to with actual values
Encrypt Web.config connection string
If there is any error whilst installing web application, rollback the web application to its previous version
The question is whether can i achieve all these functions via MS-Deploy or do i need to write any script, please suggest me what scripting language should i use
Please let me know if you need more information.
Thanks in advance
I'm not an expert on this topic but have been doing a bit of research on automated deployment with MSDeploy lately, and think I can offer the following;
This is default behaviour if you use the iisApp provider.
I know you can do this with the appPoolConfig provider, but I'm unsure as to how you would run this and #1 together as part of the same package. Perhaps as part of a pre- or post-sync command?
This is standard in v3, as long as it's set up on the server. Not used it myself, but read this anyway.
Fiddly. Not supported in MSDeploy, but you can vote for it if you want. Also, check out this SO answer (and also worth checking out PackageWeb, but the same answers' author).
Not sure I follow. This is done as part of a successful deployment, surely?
Use web.config transforms and optionally the aforementioned PackageWeb for a neat way to do this. Also check out Web Publish Profiles.
Difficult. My understanding is that the encryption is based on the machine.config, so you'd either have to run a post-sync script which would run some sort of remote Powershell script on the remote server to encrypt the web.config using aspnet_regiis, or you'd have to encrypt the config as part of your build process and then muck about with custom keys and the RSA provider (some info here).
I hope that helps. As I said, I'm no expert, so happy to be corrected by those more knowledgeable. Maybe also worth mentioning that MSDeploy is a lot more powerful if you use it via the command-line rather than creating packages from VS, although there is a bit of a learning curve to go with it.

Error when updating p2 enabled RCP application in multiuser environment

Is that possible to implement the update of my own p2 enabled RCP application in a way that it will function in multiuser environment. What I want to do is identical to eclipse, I want to have my application installed in a location that is read-only to the user. When the user runs, he gets his own writable location, usually under his home directory. The user can install additional features that are stored under this writable location. How is that possible to do. I tested my application and it doesn't work this way by default, my application tries to download updates fails and keep restarting.
Thank you in advance.
Ulyana
When you deploy your RCP app, follow the steps in Eclipse multi-user installs to create a configuration area that you can make read-only and then run as another user.
In theory it should be something like:
rcp.exe -initialize
make RCP application directory read-only

ClickOnce check for update without executing app

I work in a service organization where users of our internal tools are often disconnected. It is often the case that service engineers on service assignments are "stranded" with an outdated version of some internal tool.
These tools are deployed using ClickOnce publish VS2010 .NET4 . If the users run all their apps while still connected to corporate network, they would get a notification that a new version was available. As the number of various tools increase, the chance increases that some app is not updated.
Is it possible to automate this process, by a batch file or something?
So that the engineers just need to run one file when connected to corporate nw to get all the newest versions of their installed tools?
Added:
An easier way of saying it would be to have "something like Windows update" operating on corporate net, but for internal ClickOnce apps.
Very interesting question. I can't think of a quick way to do this, but it's definitely possible.
I would create another ClickOnce app whose job is to update the other ClickOnce apps. This app needs the url of each app's .application file. If all engineers are supposed to have all apps, that's easy. If not, maybe you could look through their start menu and find all the ClickOnce Application Reference files. Those files contain the url.
Next, just launch the url and pass a query string argument...
http://server/MyApp/MyApp.application?UpdateOnly=true
In the startup of your applications, you can check the query string argument and shut down the app if it's run with UpdateOnly=true.
One side note. If you set the minimum required version of each of your apps to the latest version, users won't get prompted with the new version dialog. Seems like you'd want to do that or the user would still have to pay attention and do a lot of clicking.