我正在使用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和Windows 2008上使用.NET 1.1程序集,这可能是对此行为的解释。如何让代理在Windows 2003上使用.NET 2.0?我正在使用Visual Studio 2005来创建测试。
答案 0 :(得分: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。