NUnit "не удалось загрузить файл или сборку" MyTestProject "
Я создаю новую 64-битную машину для запуска в качестве сервера сборки. Когда я пытаюсь загрузить свою тестовую сборку NUnit в графический интерфейс NUnit, я получаю следующую ошибку.
Нет ничего очевидного, и все зависимости, похоже, присутствуют. Все библиотеки DLL скомпилированы для платформы x86.
Использование NUnit 2.4.7. Я попробовал обновление до 2.4.8, но произошла такая же ошибка.
System.IO.FileNotFoundException: возможно не загружать файл или сборку "MyTestProject" или один из его зависимостей. Система не может найти указанный файл.
System.IO.FileNotFoundException...
Server stack trace:
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at NUnit.Core.TestRunner.Load(TestPackage package)
at NUnit.Util.TestDomain.Load(TestPackage package)
at NUnit.Util.TestLoader.LoadTest(String testName)
Ответы
Ответ 1
Решением было создание тестового проекта для "AnyCPU" вместо 32-битного. Я могу обойти ограничение, которое заставило нас использовать 32 бит.
Спасибо, Дэвид и Джо90 за предложения. Я, конечно, узнал пару новых вещей. fuslogvw.exe потрясающе, я раньше не знал, что он существует.
Ответ 2
Если вам нужно создать тестовый проект для x86, вы можете использовать nunit-x86.
См. "NUnit на 64-битных платформах" в http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2.
Ответ 3
Активируйте журнал Fusion с fuslogvw.exe
(запустите в качестве администратора из командной строки Visual Studio), чтобы узнать, что пытается выполнить загрузчик сборок нагрузки и всех возникающих ошибок.
Ответ 4
Решение было найдено после этого сообщения: Не удалось загрузить файл или сборку X.dll или одну из его зависимостей. Указанный модуль не найден. " - на хост-сервере и, более конкретно, с помощью http://dependencywalker.com/