OK NOT my last question... After testing this further, it appeared to be working, and when I call DoUpdate() it does launch the new version of my application, but it is not actually replacing the exe, it is just launching the new one and leaving the old one sitting there. Obviously still missing something.
Thanks again for your assistance.