Я запускаю внешний процесс в пользовательской задаче msbuild. Эта задача находится в сборке A, которая вызывается, когда я создаю проект B. Все работает нормально. Однако при попытке очистить проект. Visual Studio 2008 выдает сообщение об ошибке: «процесс не может получить доступ к сборке A, поскольку он используется другим процессом». Перезапуск Visual Studio устраняет эту проблему.
Код вызова внешнего процесса выглядит следующим образом
Процесс процесса = новый процесс ();
process.StartInfo = new ProcessStartInfo
{
FileName = @ "c: \ program.exe",
Аргументы = "",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
Process.Start ();
process.WaitForExit (5000);
Как мне устранить проблему, подобную этой?
Обновление: используя Process Explorer, он сообщает, что devenv.exe имеет дескриптор сборки A. Почему и как я могу помешать ему иметь дескриптор?