TWebUpdate - Windows 10 problem

Hi,


I have an app that uses the TWebUpdate component that now causes an error when checking for an update.......since installing Windows 10.  Have other users that have the same issue...but only on Windows 10 machines.

Specifically, when I call the components DoUpdate method I get the following error:

'Unable to create directory'

Using debug mode I have traced the error to Line 4064 of your WUpdate.pas:

SetCurrentDir(ExtractFilePath,Application.EXEName);

Not sure if the issue is a Windows10 setting or whether that call is broken with Windows 10.

Can you please help.

regards

Bill Zwirs


We're not aware of issues with Windows 10.
SetCurrentDir() doesn't create a folder, so, it is confusing you would get this message on SetCurrentDir.
Where is your app installed? Is it under \Program Files ?

To get more info, could you enable logging on WebUpdate and send the log file to email support so we can inspect deeper?

Logging was enabled but no log file was created. I believe the default directory is \My Documents.  In Windows 10 there doesn't seem to be a directory of that name so maybe that is the problem. If I change the Logfilename property from 'WUPDATE.LOG' to '\WUPDATE.LOG' I no longer get the error message but also cannot find the log file.


regards

Bill Zwirs

Can you try to set the logfilename to an absolute path that exists and for which you certainly have write permissions, something like c:\temp\wupdate.log ?

Yes. That works fine if I set the logfilename to the same directory as the .exe. 


Previously, I had simply accepted the default....so you will need to fix the default action in your component.

regards

Bill Zwirs

As I explained, we are not aware of an issue with Windows 10 and can't reproduce an issue on Windows 10 either. There must be something particular happening in your app and that's why we asked to enable logging and send the log file so we can inspect in detail what is happening.

Bruno,


Cannot create a log file because that is where the problem is when using your default settings.  If I specify a directory for the log file there are no problems. 

Your documentation states that the default directory for the log file, if not specified, is '\My Documents'. In Windows 10 there is NO '\My Documents' directory so I suspect that this is where the error arises because it can't create the directory to place the log file into.

In Windows 10, your default behaviour should be to place the log file (if no specific directory is used) in the '\Documents' directory.

Hope this makes sense to you.

regards

Bill Zwirs

My reference to "My Documents" is only the symbolic name. In newer Windows versions this maps to c:\users\USERNAME\Documents

So, on Windows 10, it writes to c:\users\USERNAME\Documents. This folder should have write permissions for the current user.

>>So, on Windows 10, it writes to c:\users\USERNAME\Documents. This folder should have write >>permissions for the current user.


Yes, that is where the WUPDATE.log file is located but there are no additions to this file since I installed Windows 10.  At least my problem is fixed by specifying the .log directory.

regards

Bill

Did you ever get a resolution to this proble. The users of my apps can no longer do an upgrade after moving to windows 10. TMS are helping but so far none of my users can get teh update done. Mine seems to be a problem with renaming the .inf file that is downloaded.

I have wrote it in another TWebupdate Topic and copied here too.



TWebUpdate fails on Win7, Win8 Win8.1 (Win10 not tested). In our Situation the complete Application hang up, cause we checked first if there is an Update (.DoWebUpdate) and not calling a menuposition to start the update. If we call it withhin a menu (Updatewizard) he saw the Update but many times he dos not do it. On a second call App hang up.



TMSSubscriptionmanager is the same. Application hang up.



We examine that, and found out, that it has to do with two updates for IE11: kb3087038 and KB3093983. They modify the files inetres.admx and inetres.adml. I'am not sure if this is all, but if you deinstall this two Updates kb3087038 (He kills it) and the repairtry kb3093983, TWebUpdate and TMSSubscriptionmanager will work again. If you test this out with kb installed, you must test more than once. If we have a fresh booted System we can call the app once eventually twice then the App hang up. After deinstalling this two Updates, we can start our Apps, hundred times and nothing fails.



Our workaraund was, to eleminate TWebupdate in our Application (what a mess), cause we use wsus in our Company and we cannot cancel this updates. I hope, that Bruno can give us a Workaround or an Update to solve this Problem.



A important hint. It looks like that happend only on Systems, that are not pure english. I'm not sure, if it onyl happens on Enterprise Systems in english with language packs (thats in our case) or in Windows in nonenglish.



Regards



Peter

TWebUpdate & TMS Subscription Manager both use Wininet.dll for http & ftp transport. Apparently, something has broken wininet.dll in these KBs. As a workaround we'd suggest to deploy with your apps a working wininet.dll.
As it is very hard to recreate the machine setup for this particular error, perhaps you could send us such a broken wininet.dll so we can test with it and see if there is a workaround (without any guarantee it can be workarounded with a broken DLL)

disabling the logging solved it for me on Windows 10.