2008-12-30 14 views
30

Estoy configurando una nueva máquina de 64 bits para ejecutar como un servidor de compilación. Cuando intento cargar mi ensamble de prueba NUnit en la GUI de NUnit, aparece el siguiente error:NUnit "no se pudo cargar el archivo o montar 'MyTestProject'

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 se produce el mismo error

System.IO.FileNotFoundException: podría no cargar el archivo o el ensamblaje '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) 

Respuesta

28

La solución fue crear 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.

+4

sí, pero es mejor usar nunit-x86 si necesita su proyecto para ser compilado para x86. – nightcoder

3

Activa el registro de fusión con fuslogvw.exe (Ejecutar como administrador desde el Visual Studio de comandos) para ver lo que el cargador de montaje intenta cargar y todos los que ocurren errores

Cuestiones relacionadas