Это потому, что вы запускаете его через Visual Studio в режиме отладки. Если вы отпустите и установите приложение в другом месте, будет обработан только ваш глобальный обработчик исключений.
Это действительно звучит так, как будто ты ищешь больше для этого:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "<whatever>";
proc.Start();
Использовать:
System.Diagnostics.Process.Start(filePath);
Он будет использовать программу по умолчанию, которая будет открыта, как если бы вы только щелкнули по ней. По общему признанию это не позволяет вам выбрать программу, которая будет запускаться ... но при условии, что вы хотите имитировать поведение, которое будет использоваться, если пользователь дважды щелкнет по файлу, это должно работать просто отлично.
Предполагая, что вы просто хотите запустить файлы, у которых уже есть некоторые связанные приложения (например: * .txt связан с блокнотом), используйте System.Diagnostics.Process.
например. :
using System.Diagnostics;
Process p = new Process();
ProcessStartInfo pi = new ProcessStartInfo();
pi.UseShellExecute = true;
pi.FileName = @"MY_FILE_WITH_FULL_PATH.jpg";
p.StartInfo = pi;
try
{
p.Start();
}
catch (Exception Ex)
{
//MessageBox.Show(Ex.Message);
}
Примечание. На моем ПК изображение открывается в Windows Picture & amp; Просмотрщик факсов, поскольку это приложение по умолчанию для файлов * .jpg.