30

ビルド サーバーとして実行する新しい 64 ビット マシンをセットアップしています。NUnit テスト アセンブリを NUnit GUI にロードしようとすると、次のエラーが発生します。

明らかな欠落はなく、すべての依存関係が存在するようです。すべての DLL は x86 プラットフォーム用にコンパイルされています。

NUnit 2.4.7 の使用。2.4.8 にアップグレードしようとしましたが、同じエラーが発生します。

System.IO.FileNotFoundException: ファイルまたはアセンブリ 'MyTestProject' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

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

4 に答える 4

30

解決策は、32 ビットの代わりに「AnyCPU」のテスト プロジェクトをビルドすることでした。32 ビットを使用するようになった制限を回避できます。

提案をしてくれた David と Joe90 に感謝します。私は確かにいくつかの新しいことを学びました。fuslogvw.exe は素晴らしいです。以前は存在を知りませんでした。

于 2008-12-30T13:19:08.000 に答える
11

x86 用のテスト プロジェクトをビルドする必要がある場合は、nunit-x86 を使用できます。

http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2の「64 ビット プラットフォーム上の NUnit」を参照してください。

于 2009-07-05T19:37:24.540 に答える
4

(Visual Studio コマンド プロンプトから管理者として実行) を使用して Fusion ログをアクティブ化しfuslogvw.exe、アセンブリ ローダーが何を読み込もうとしているか、および発生しているすべてのエラーを確認します。

于 2008-12-30T10:49:28.193 に答える