Я играл с вашей концепцией, и кажется, что проблема не в загрузке файла, а в зависимости.
Я использовал следующий модифицированный код:
И ошибка была на самом делеНе удалось найти файл nunit.core.dll, который находится в каталоге / lib.
try
{
String NUnitPath = @"C:\Program Files\NUnit 2.5.7\bin\net-2.0\nunit-console.exe";
AssemblyName asmName = System.Reflection.AssemblyName.GetAssemblyName(NUnitPath);
AppDomain.CurrentDomain.ExecuteAssemblyByName(asmName, new[] { Assembly.GetExecutingAssembly().Location, "/framework:4.0" });
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
Trace.WriteLine(ex.StackTrace);
}
(мне нравится получать System.Reflection.AssemblyName, потому что вы можете проверить и увидеть, что все в порядке, соответствует пути к необработанному файлу.)
Быстрое массовое копирование (моноблок xcopy. *.dll) в каталог отладки моих тестовых проектов, и он работал нормально.(Обнаружение минимальных необходимых зависимостей должно быть тривиальным)
Протестировано в VC # 2010 Express с NUnit 2.5.7 (точки останова работают, но я не играл ни с какими другими опциями.) Хотя яконечно, вы можете сделать из него сносный вариант сборки.
Cheers!
PS - Первый пост здесь, так что я немного не опробован относительно форматирования блоков кода.Извините заранее ..