我有以下c#代码:
string cmdInnoSetup = @"""C:\Program Files (x86)\Inno Setup 5\compil32\""" + " /cc " + @"""c:\\SetupScript.iss""";
System.Diagnostics.Process.Start("cmd.exe","/k "+ cmdInnoSetup);
但是当我执行它时,我得到以下消息:
"未找到程序"
但是当我从第二部分句子"c:\\SetupScript.iss"
中删除双引号时,代码工作正常!
现在我怎样才能解决这个不合逻辑的问题,以便将两条路径保持在双引号内!
如何通过为源和目标设置双引号来让代码工作!
答案 0 :(得分:2)
您可以尝试使用如下所示的字符串:
"\"C:\\Program Files (x86)\\Inno Setup 5\\compil32\\\"" + " /cc \"c:\\SetupScript.iss\"";
答案 1 :(得分:1)
尝试这两行,我尝试了它并且有效:
string cmdInnoSetup = @"""C:\Program Files (x86)\Inno Setup 5\compil32.exe"" /cc 'c:\SetupScript.iss'";
System.Diagnostics.Process.Start("cmd.exe", "/k " + cmdInnoSetup);
答案 2 :(得分:1)
您可以尝试以不同方式调用您的程序。如:
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Inno Setup 5\compil32.exe", @"/cc ""c:\SetupScript.iss""");
除非你真的需要cmd来执行输出,否则它应该基本相同。
(我自己并没有尝试使用InnoSetup,而是使用其他程序)