It probably is running but your script isn't waiting for it to complete. Calling Start
simply triggers the OS to create and run the process. It doesn't wait around for the process to finish. To wait for the process to finish you need to use WaitForExit or similar.
Dts.Events.FireInformation(3, "Process Task", "Start", "", 0, ref fireAgain);
process.Start();
//Wait for it...
process.WaitForExit();
Dts.Events.FireInformation(3, "Process Task", "End", "", 0, ref fireAgain);
WaitForExit
allows a timeout if you want to block for a while and kill the process if it takes too long.
After the process has completed you can use ExitCode to get the return value from the process. Outside of a bad path or invalid process start options then Start
will almost never fail. Errors that occur in the other process are not accessible in the script unless you also hook into the process'es output stream but that gets hard. The exit code is the closest indicator that you may have of whether the process succeeded or not.
You should also wrap your usage of Process
in a using statement to ensure it gets cleaned up.