На отладке работает, но не работает в нужной папке - C#
Формулировка задачи:
Ужас какой то, не могу вычислить в чем ошибка, ведь на отладке и релизе работает, а когда начинаешь пихать в папку где оно должно потом находится... не хочет. Суть программы в том что она скачивает архив, распаковывает его, после чего запускает другую программу распакованную из архива. Это апдейтер. Проблема в том что в нужной папке она не хочет запускать файл "Start Realism2015.exe", а на отладке и в папке релиза он запускается. Код простой и короткий, 2 формы
форма 1:
форма 2:
Посмотрите люди добрые, может я чего то не замечаю или не знаю?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using System.Threading; using System.Diagnostics; namespace WindowsFormsApplication1 { public partial class Form1 : Form { System.Net.WebClient WebClient = new System.Net.WebClient(); System.Diagnostics.Process proc = new System.Diagnostics.Process(); public Form1() { InitializeComponent(); Upd(); } void Upd() { Uri Uri = new Uri("http://realism2015.ru/realism2015v2/Realism2015v2.7z"); WebClient.DownloadFileAsync(Uri, "Realism2015v2.7z"); WebClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(WebClient_DownloadProgressChanged); WebClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(WebClient_DownloadFileCompleted); } void WebClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e) { label1.Text = string.Format("Downloading... {0} Kb / {1} Kb", e.BytesReceived / 1024, e.TotalBytesToReceive / 1024); progressBar1.Value = e.ProgressPercentage; } void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { Hide(); Form2 forma = new Form2(); forma.ShowDialog(); Close(); } private void progressBar1_Click(object sender, EventArgs e) { } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using System.Threading; using System.Diagnostics; using SevenZip; namespace WindowsFormsApplication1 { public partial class Form2 : Form { SevenZipExtractor se = new SevenZipExtractor(@"Realism2015v2.7z"); System.Diagnostics.Process proc = new System.Diagnostics.Process(); public Form2() { InitializeComponent(); Ystanovka(); label1.BackColor = Color.Transparent; } void Ystanovka() { se.BeginExtractArchive(@Application.StartupPath); se.ExtractionFinished += new EventHandler<EventArgs>(se_ExtractionFinished); } void se_ExtractionFinished(object sender, EventArgs e) { se.Dispose(); launcher(); } void launcher() { //MessageBox.Show("Update completed"); string launcher = Application.StartupPath; string name = @"\Start Realism2015.exe"; proc.StartInfo.FileName = launcher + name; proc.Start(); // вот тут не запускает. Close(); } private void Form2_Load(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } } }
Решение задачи: «На отладке работает, но не работает в нужной папке»
textual
Листинг программы
se.BeginExtractArchive(@"c:\Games\Steam\steamapps\common\SuperPower 2\");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д