1

pnunitを使用してリモートマシンでnunitテストを実行していますが、pnunitエージェントはテストをロードしてWindows 2008で実行しますが、Windows2003ではテストがロードに失敗します。エージェントエラーは次のとおりです。

INFO  PNUnit.Agent.PNUnitAgent - Registering channel on port 9080
INFO  PNUnit.Agent.PNUnitAgent - RunTest called for Test MyTest, AssemblyName test.dll, TestToRun test.Program.myDeployTest
INFO  PNUnit.Agent.PNUnitTestRunner - Spawning a new thread
INFO  PNUnit.Agent.PNUnitTestRunner - Thread entered for Test MyTest:test.Program.myDeployTest Assembly test.dll

Unhandled Exception: System.BadImageFormatException: The format of the file 'test
' is invalid.
File name: "test"

Server stack trace:
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, B
oolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Ass
embly locationHint, StackCrawlMark& stackMark)

procmonを実行し、エージェントプロセスを監視すると、エージェントの実行可能ファイルがWindows2003では.NET1.1アセンブリを使用し、Windows2008では.NET2.0を使用していることがわかりました。これは、この動作の説明になります。エージェントにWindows2003で.NET2.0を使用させるにはどうすればよいですか。VisualStudio2005を使用してテストを作成しています。

4

1 に答える 1

0

アプリケーション用のファイルを作成.configし、以下を挿入/マージします(もちろん、必要なバージョンでは、これは2.0 RTM用です)。

<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <requiredRuntime version="v2.0.50727" safemode="true"/>
  </startup>
</configuration>

これは、たとえば、1.1アプリケーションの場合、またはアンマネージアプリケーションが1.1 COMオブジェクトをアクティブ化した場合でも、.NET2をロードします。

于 2010-05-19T21:32:26.647 に答える