Monday, May 5, 2014

Researching ClickOnce deployment issues

I have just installed Windows 8.1 on a spare computer at work and I'm trying to deploy my WPF application on it using ClickOnce. The application fails with a meaningless generic error message "Purchasing failed to run" with no [Details] option, which implies the problem is in my code despite the fact that I have an unhandled exception handler defined. I wanted to be sure so I started investigating what log files might be available.

If you want to control the ClickOnce log files you need to run the registry editor and browse to HKCU/Software/Classes/Software/Microsoft/Windows/CurrentVersion/Deployment. You can add/modify a string key called LogFilePath which allows you to override the path that ClickOnce uses to place its log files. You can also specify verbose log files by setting a string key called LogVerbosityLevel = 1.

By default the ClickOnce application creates log files in the Temporary Internet Files folder which is at C:\Users\<user name>\AppData\Local\Microsoft\Windows\INetCache. The log files are named System_Deployment_Log_xxxxxxx where xxxxxxxx is random obfustication. You cannot open them directly because they're actually inside a Cache. To view the contents right-click one and note the Cache Name. You can click and drag the file to another folder but it will be copied as the cache name - not the file name. You can then double click the copy and open it with notepad.

In the end it turned out that the problem was with our Publish configuration. I had recently changed some Intersoft dlls in the Application Files setup to be in a new group. These dlls were not getting downloaded to the new client so ClickOnce thought it had done it's job but the application could not launch.

No comments:

Post a Comment