.msiをインストールし、そのcmdファイルをC#コードで実行するcmdファイルを作成しようとしています。 Visual Studioからf5またはcontrol + f5を使用して実行すると、コードは完全に機能します。コマンドファイルをプログラムで作成/実行する
ただし、コードを.msiファイルにパッケージしてインストールすると(wpfアプリケーション)、関連するコードを実行するとコマンドウィンドウが開きますが、コマンドは実行されません。代わりに「C:\ Programは内部コマンドまたは外部コマンドとして認識されません...」このエラーは、ファイルパスの前後に引用符がないことを意味しますが、引用符の下に表示されているようにある。また、プログラムファイルディレクトリに移動すると、Reinstall.cmdファイルが存在し、引用符が付きます。生成されたReinstall.cmdファイルをダブルクリックすることもできます。何が私はここで行方不明ですか?あなたは引用符があります下に見ることができるように
private string MSIFilePath = Path.Combine(Environment.CurrentDirectory, "HoustersCrawler.msi");
private string CmdFilePath = Path.Combine(Environment.CurrentDirectory, "Reinstall.cmd");
private void CreateCmdFile()
{
//check if file exists.
if (File.Exists(CmdFilePath))
File.Delete(CmdFilePath);
//create new file.
var fi = new FileInfo(CmdFilePath);
var fileStream = fi.Create();
fileStream.Close();
//write commands to file.
using (TextWriter writer = new StreamWriter(CmdFilePath))
{
writer.WriteLine(String.Format("msiexec /i \"{0}\"", MSIFilePath));// /quiet
}
}
private void RunCmdFile()
{//run command file to reinstall app.
var p = new Process();
p.StartInfo = new ProcessStartInfo("cmd.exe", "/k " + CmdFilePath);
p.Start();
p.WaitForExit();
}