На отладке работает, но не работает в нужной папке - 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\");