wyUpdate for games

Hi,

we have bought wyBuild for our upcoming XNA game project and using wyUpdate for updating. It's really a great piece of software, however I have a few issues:

1. I wanted to place wyUpdate.exe together with client.wyc in it's own separate "Update" subdirectory of our application. So I set wyUpdateLocation = @"Update\wyUpdate.exe" of the instance of AutomaticUpdaterBackend class but then I noticed that updated content is downloaded relative to Update directory instead being relative to our application root folder. Am I doing something wrong or is it a bug?

2. I'd like to ask if it is possible to completely hide windows popping up after a call to InstallNow method when our game is closed and wyUpdate takes place. I tried to set up -skipinfo parameter for wyUpdateCommandline but then I'm not notified by events like BeforeChecking, BeforeDownloading, UpdateAvailable etc. anymore which I need for our custom in-game UI to let the player know about updating progress. Is it possible to somehow completely turn off wyUpdate's UI? We use our custom in-game graphics and don't want anything else being popped up.

3. Finally I want to ask you whether you are planning to add support for wyBuild to upload builded updates to anything else but FTP. I am interesting mainly in adding support for Amazon S3 we are using for almost everything. They use their own protocol to upload files however there is .NET SDK for C# available on their web and is very simple to use. I think this would be interesting feature not only for us because Amazon services are becoming more and more popular.

Thanks in advance for your soon answer.

I wanted to place wyUpdate.exe together with client.wyc in it's own separate "Update" subdirectory of our application.

wyUpdate assumes the folder it's sitting in is the "base" directory for the application. In your example, this is not the case, so you have to tell it otherwise. Use the "-basedir" wyUpdate commandline option. To use this with the AutomaticUpdater, use the "wyUpdateCommandline" property. For example:

auBackend.wyUpdateCommandline = "-basedir:\"C:\\Your App Folder\"";

Also, you shouldn't use relative paths like @"Update\wyUpdate.exe". Here's how your app reads this value: "Find the path CurrentWorkingDirectory + @"Update\wyUpdate.exe" ". The Current working directory may or may not be your app's main folder. It may be the user's desktop. There are a dozen ways you can get your app's folder, but the easiest is to use the "Application.ExecutablePath" property to get your running app's EXE.

Does this make sense?

I'd like to ask if it is possible to completely hide windows popping up after a call to InstallNow method when our game is closed and wyUpdate takes place.

You can't hide wyUpdate when it's updating GUI apps. This is by design. If you're making a Windows Service app, on the other hand, then you can completely hide wyUpdate.

I tried to set up -skipinfo parameter for wyUpdateCommandline but then I'm not notified by events like BeforeChecking, BeforeDownloading, UpdateAvailable etc. anymore which I need for our custom in-game UI to let the player know about updating progress.

You're not the first person to do this and I can't figure out why people do this. The "skipinfo" commandline arg is for wyUpdate as a standalone updater. You're not using wyUpdate as a standalone updater (you're using wyUpdate as an auto-updater), thus using the "skipinfo" command will just screw things up.

We'll have this fixed in the next version of wyUpdate. wyUpdate will just ignore args that shouldn't be there.

Finally I want to ask you whether you are planning to add support for wyBuild to upload builded updates to anything else but FTP.

Yes, wyBuild already supports SSH FTP (aka SFTP) which is a completely different protocol than FTP. We might support Amazon S3 in the future. In the meantime you can upload your updates to S3 using Cyberduck (another wyUpdate user).

Thanks for the answers. Well I used -skipinfo parameter to try to actually hide the GUI of wyUpdate.exe because I could not find any way how to do it. Now I know it's impossible as you wrote however it would be nice to have such a feature some day. But I can live without it...