Извлеките EXE из ресурсов:
Dim l as System.IO.Stream = Reflection.Assembly.GetEntryAssembly.GetManifestResourceStream(String.Format("{0}.{1}", "ApplicationProjectName", "YourExeName"))
Затем сохраните его во временную папку - пример метода:
Private Sub SaveStreamToFile(ByVal p_stream As Stream, ByVal p_fileName As String)
Dim l_streamWriter As System.IO.FileStream = System.IO.File.Create(p_fileName)
Try
Dim l_bytes(65536) As Byte
Dim l_offset As Integer = 0
Dim l_readBytes As Integer
Do
l_readBytes = p_stream.Read(l_bytes, 0, 65536)
l_streamWriter.Write(l_bytes, 0, l_readBytes)
l_offset += l_readBytes
Loop While (l_readBytes > 0)
Debug.WriteLine("Num Of bytes Read: " + l_offset.ToString)
Catch ex As Exception
'log error
Finally
p_stream.Close()
l_streamWriter.Close()
End Try
End Sub
Теперь, когда вы получили EXE во временной папке, выможет регулярно обедать его, используя:
Process.Start("EXE_PATH")
и удалить его, как только процесс будет завершен.