我有(在设置后从调试器复制,以确保这是实际传递给命令的内容):
process.StartInfo.FileName = "C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\signtool.exe"
process.StartInfo.Arguments = " sign /f \"C:\\Users\\...\\myPfx.pfx\" /p \"myPassword\" \"C:\\Users\\...\\Desktop\\app.exe\""
但是当我Start()
使用它时,它不会签署应用程序。(当我将 signtool 复制到该文件夹并手动执行时 - 它可以工作。)因此,为了调试,我尝试了:
System.Diagnostics.Process.Start(@"cmd.exe", @" /k " + "\"" + process.StartInfo.FileName + "\"" + " " + "\"" + process.StartInfo.Arguments + "\"");
但我得到:
'C:\Program' 不是内部或外部命令、可运行程序或批处理文件。
那么我如何让签名工作(或者至少是cmd
,所以我将能够看到究竟是什么问题)?
编辑:谢谢大家。问题的答案如下 - 缺少引号。尽管我在发布问题之前确实尝试过(-在所有内容中添加引号) - 它当时没有用。事实证明,我在引号和实际参数之间添加了一些空格。所以似乎这会导致错误。