1

我正在使用 pnunit 在远程机器上运行 nunit 测试,pnunit 代理加载测试并在 Windows 2008 中运行它,但测试无法在 Windows 2003 中加载,代理错误是

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 并监视代理进程时,我可以看到代理可执行文件在 Windows 2003 上使用 .NET 1.1 程序集,在 Windows 2008 上使用 .NET 2.0,这可能是对这种行为的解释。如何让代理在 Windows 2003 上使用 .NET 2.0?我正在使用 Visual Studio 2005 创建测试。

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 对象,这也会加载 .NET 2。

于 2010-05-19T21:32:26.647 回答