I searched and experimented for a while with this, but I had no luck.
I am trying to create a console program to automate some tasks that I could not do with a BAT file. I want to call "signcode.exe" from the Windows SDK, the bin folder with all the tools on my PATH system, and I can call "signcode" from anywhere, but Process.Start ignores the path.
Current code:
System.Diagnostics.Process sign = new System.Diagnostics.Process(); sign.StartInfo.FileName = signCommand.Substring(0, signCommand.IndexOf(' '));
I have confirmed that StartInfo.EnvironmentVariables ["Path"] matches my system path and contains the Windows SDK folder. Manual configuration also does not work.
I even tried setting TempPath, as shown on the MSDN page, for the EnvironmentVariables property , but that didn't work either. I wonder why you could install this if it has no effect.
If System.Diagnostics.Process cannot use the path, are there any other functions that I could use? I would also like to see the output of the command in my console application.
Here are some additional debugging values:
Console.WriteLine("Sign Filename = '{0}'", sign.StartInfo.FileName); Sign Filename = 'signtool.exe' Console.WriteLine("Sign Arguments = '{0}'", sign.StartInfo.Arguments); Sign Arguments = '/sign /f C:\Visual Studio\Projects\MGInsight\MGInsight\APPARENTINC.pfx /t http://timestamp.comodoca.com/authenticode "C:\Visual Studio\Projects\MGInsight\MGInsight\Publish\Application Files\\MGInsight_0_9_1_85\MGInsight.exe" "C:\Visual Studio\Projects\MGInsight\MGInsight\Publish\Application Files\\MGInsight_0_9_1_85\XPXScanner.dll" "C:\Visual Studio\Projects\MGInsight\MGInsight\Publish\Application Files\\MGInsight_0_9_1_85\NetworkCalculations.dll"' Console.WriteLine("Sign Path = '{0}'", sign.StartInfo.EnvironmentVariables["Path"]); Sign Path = 'C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files\Intel\WiFi\bin\";"C:\Program Files\Common Files\Intel\WirelessCommon\";"C:\Program Files (x86)\cwRsync\bin";"C:\Program Files (x86)\Git\cmd";"C:\Program Files (x86)\Git\bin";"C:\Program Files (x86)\Zend\ZendServer\bin";"C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\bin";"C:\Program Files\Java\jre6\bin";"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\";"C:\Program Files\Microsoft Windows Performance Toolkit\";C:\MinGW\bin;"C:\Program Files (x86)\Microsoft\ILMerge";"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin";C:\Program Files (x86)\Nmap'
The path "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin" is where signtool.exe is, and I can run it from the command line just by typing signtool , but if I run this application from of the same invitation, he will not register this path.