You can just remove the "saveFileDialog1.OpenFile();" line completely.
It's not needed at all because you don't understand what it does. All the OpenFile() method does is open the file for read/write and returns a Stream object. Since you're not assigning this Stream object to a variable, you're just throwing out what the OpenFile() method is returning.
IT DOES NOT LAUNCH THE FILE!
Also, the file you're writing doesn't get closed until AFTER the
using
block you opened the file with. You're trying to open the file with OpenFile while the file is still opened by the FileStream you created in the
using
block.
To launch an installer, you'd have to use the Process class. You could probably get away with the
Start[
^] method.