私は Vista 64 ビットを使用しており、x86 構成でビルドされたプロジェクトがあります。すべて正常に動作します。今、私たちはテストを作成する時です。NUnit 2.4.8 がありますが、多くの問題があります。
テストは、.dll を直接選択すると Nunit.exe (gui) を介して読み込まれますが、実行すると system.badimageformatexception が発生します。
nunit.exe.config に関するいくつかのトリックを Google で検索して読みましたが、どれも機能しません。(UTF8に変更...起動用の.netバージョンのコメントを外します)。
何か案が?
アップデート
ソリューションをクリーンアップし、すべての BIN フォルダーを消去しました。コンパイルすると、x64 にあった古い /debug/ ではなく、bin ディレクトリに /x86/ しかないことがはっきりとわかります。
Nunit を使用すると、(ロード中に) 例外があります: System.IO.FileNotFoundException...
サーバー スタック トレース: 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& NUnit.Core.Builders.TestAssemblyBuilder.Load (文字列path) で NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) で NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName,Boolean autoSuites) の NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage パッケージ) の NUnit.Core.TestSuiteBuilder.Build(TestPackage パッケージ) の NUnit.Core.SimpleTestRunner.Load(TestPackage パッケージ) の NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) ) NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) で NUnit.Core.RemoteTestRunner.Load(TestPackage パッケージ) で System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr、Boolean fExecuteInContext、Object[]& outArgs) を System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg、Int32 methodPtr、Boolean fExecuteInContext) でBuild(TestPackage パッケージ) at NUnit.Core.SimpleTestRunner.Load(TestPackage パッケージ) at NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) at NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) at NUnit.Core.RemoteTestRunner.Load( TestPackage パッケージ) の 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)Build(TestPackage パッケージ) at NUnit.Core.SimpleTestRunner.Load(TestPackage パッケージ) at NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) at NUnit.Core.ProxyTestRunner.Load(TestPackage パッケージ) at NUnit.Core.RemoteTestRunner.Load( TestPackage パッケージ) の 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)Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) )Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) )
[0] で例外が再スローされました。 NUnit.Util.TestDomain.Load(TestPackage パッケージ) の NUnit.Util.TestLoader.LoadTest(String testName) の TestRunner.Load(TestPackage パッケージ)
更新 2
x64 ではなく x86 に変更した任意の CPU でコンパイルしています。理由はデバッグのためです。これについては、前のリンクですでに説明されています。NUnit が 64 ビット mod と Corflags.exe で実行されていることを確認する必要があります。