Я запускаю исполняемый файл, который открывает форму окна из веб-формы. В визуальной студии программа winform запускает метод, а затем правильно закрывает форму окна и выключает программу. Но когда я запускаю тот же файл, что и исполняемый файл, он закрывает окна. Я вижу, что этот исполняемый процесс по-прежнему работает как SmartSheetAPI.exe.Не удается закрыть процесс в C#
Когда я проверяю в свойствах имя файла «SmartSheetAPI.exe». Если я закончу этот процесс в диспетчере задач, он выключит форму окна, поэтому я знаю, что это проблема. Тем не менее, я попытался использовать приведенный ниже код на веб-форме, чтобы убить процесс, но опять же он не работает.
Process process = new Process();
process.StartInfo.FileName = @"P:\Visual Studio 2013\Projects\Smartsheet\SmartsheetAPI\obj\Debug\SmartSheetAPI.exe";
process.Start();
foreach (var processes in Process.GetProcessesByName("SmartSheetAPI.exe"))
{
process.Kill();
}
Кто-нибудь знает, как закрыть эту штуку. Как я уже сказал, это хорошо работает в программе SmartSheetAPI в визуальной студии, но не закрывает окно как исполняемый файл. Мне просто нужно закрыть этот процесс после запуска метода.
EDIT: Процесс, который не закрывается, является vshost.exe, и по какой-то причине мое приложение закрывается по какой-либо причине (т. Е. Форма окна остается открытой). Если I process.kill(), это все выключается по мере необходимости. Однако проблема заключается в том, что когда я запускаю исполняемый файл этого файла, форма окна остается открытой, но я не могу найти vshost.exe для ее закрытия? Я отключил его, и теперь процесс, который не будет закрыт, - это файл SmartSheetAPI.exe, который является программой, которую я сейчас запускаю. Я просто хочу выйти из этой программы, но я ничего не пытаюсь работать.
Если ваш процесс зависает, вам лучше разобраться в проблеме, а не убить процесс. –
Следите за файловыми замками. Закройте все окна проводника, которые могут отображать информацию о файле. Сама Explorer не должна блокировать файлы, но что-то в ОС может это сделать. В Sysinternals есть программа под названием Process Explorer, которая позволяет вам искать имя файла, чтобы узнать, какой процесс заблокировал его. –