The program will run in AppDomain.
Therefore, any general state used by both programs can be confusing.
To solve this problem, you can call AppDomain.ExecuteAssembly .
In any case, the program itself may not process it correctly - the current directory, command line arguments and other state of each process (for example, environment variables) will be shared by the parent process.
SLaks source share