.net - NUnit "no se pudo cargar el archivo o ensamblar ''MyTestProject''
64bit continuous-integration (4)
Active el registro de Fusion con fuslogvw.exe
(Ejecutar como administrador desde el símbolo del sistema de Visual Studio) para ver qué trata de cargar el cargador de ensambles y todos los errores que se producen.
Estoy configurando una nueva máquina de 64 bits para ejecutar como un servidor de compilación. Cuando intento cargar mi ensamblaje de prueba NUnit en NUnit GUI, aparece el siguiente error.
No hay nada obvio que falta, todas las dependencias parecen estar presentes. Todos los archivos DLL se compilan para la plataforma x86.
Usando NUnit 2.4.7. He intentado actualizar a 2.4.8 pero ocurre el mismo error.
System.IO.FileNotFoundException: No se pudo cargar el archivo o ensamblado ''MyTestProject'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
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)
La solución fue construir el proyecto de prueba para "AnyCPU" en lugar de 32 bits. Puedo evitar la restricción que nos hizo usar 32 bits.
Gracias David y Joe90 por las sugerencias. Ciertamente aprendí un par de cosas nuevas. fuslogvw.exe es increíble, no sabía previamente que existía.
Si necesita construir el proyecto de prueba para x86, puede usar nunit-x86.
Consulte "NUnit en plataformas de 64 bits" en http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2 .
La solución se encontró después de esta publicación: "No se pudo cargar el archivo o el ensamblado ''X.dll'' o una de sus dependencias. No se pudo encontrar el módulo especificado." - en el servidor host y más específicamente mediante el uso de http://dependencywalker.com/