NUnit "не удалось загрузить файл или сборку 'MyTestProject' - PullRequest
30 голосов
/ 30 декабря 2008

Я настраиваю новую 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)

Ответы [ 4 ]

29 голосов
/ 30 декабря 2008

Решением было создание тестового проекта для «AnyCPU» вместо 32-битного. Я могу обойти ограничение, которое заставило нас использовать 32 бит.

Спасибо, Дэвид и Joe90 за предложения. Я, конечно, узнал пару новых вещей. fuslogvw.exe - это круто, раньше я не знал, что он существует.

11 голосов
/ 05 июля 2009

Если вам нужно собрать тестовый проект для x86, вы можете использовать nunit-x86.

См. «NUnit на 64-битных платформах» в http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2.

3 голосов
/ 30 декабря 2008

Активируйте журнал Fusion с помощью fuslogvw.exe (Запуск от имени администратора из командной строки Visual Studio), чтобы увидеть, что пытается загрузить загрузчик сборки и все возникающие ошибки.

0 голосов
/ 08 мая 2014
...