2010-05-19 4 views
1

Я использую pnunit запустить NUnit тесты на удаленных машинах pnunit агент загружает тест и запускает его в Windows 2008, но тест не загружается в Windows 2003, ошибка агентКак получить приложение для использования определенной версии .NET?

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 и мониторинг процесса агента я мог видеть, что исполняемый файл агента использовал сборки .NET 1.1 в Windows 2003 и .NET 2.0 в Windows 2008, что может быть объяснением этого поведения. Как заставить агента использовать .NET 2.0 в Windows 2003? Я использую Visual Studio 2005 для создания тестов.

+0

Является ли Windows 2003 x86 и Windows 2008 x64? –

+1

Можете ли вы подтвердить, что .Net 2.0 установлен на компьютере 2003 года? Странно, что он не выбрал .Net 2.0, если он был установлен на поле 2003, так как он по умолчанию был установлен на платформе .Net 2.0 на машине 2008 года. – Sijin

+0

@ Сиджин, почему это было бы странно? По умолчанию точное совпадение времени выполнения выбрано, насколько я могу судить по моему опыту в этом вопросе в прошлом. Поэтому, если вы должны запустить приложение 1.0 на машине с 1.1 и 2.0, оно может загрузить 2.0, но приложение 1.1 на машине с 1.1 будет загружать 1.1 в мой опыт. – Lucero

ответ

0

Создать .config файл для приложения и вставить/слить следующее (конечно, с версией вы хотите, это для 2.0 RTM):

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

Это, например, будет загружать .NET 2 даже для приложение 1.1 или если неуправляемое приложение активирует объект 1.1 COM.

+0

Спасибо, что сработало – carrutherji

 Смежные вопросы

  • Нет связанных вопросов^_^