2 варианта.
1) Если это небольшое приложение может работать автономно, то есть оно может работать каким-то полезным способом, не будучи порожденным родительским приложением, тогда используйте Process.Start()
. Ваши приложения, которые порождают этот процесс, могут не работать в среде с частичным доверием.
Process.Start("notepad.exe");
2) Если приложение полезно только в контексте родительских приложений, скажем, с помощью предоставления объектов или других аргументов из других приложений, рассмотрите возможность рефакторинга небольшого приложения, чтобы позволить родительскому приложению ссылаться на проект формы. Затем ваши родительские приложения могут просто создать новый экземпляр формы и отобразить его:
var childForm = new SmallAppForm();
childForm.Owner = this; //the child window will close when its owner does.
childForm.Show();
Несмотря на то, что это больше кода, его, как правило, проще и проще в реализации. К форме также можно получить доступ и, таким образом, управлять из любого места в приложении, а другие функции могут быть реализованы без необходимости иметь дело с довольно запутанным бизнесом межпроцессного взаимодействия.