От новичка до гуру: Курсы программирования на CyberDuff

Как заставить приложение использовать определенную версию .NET?

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

19.05.2010

  • Windows 2003 x86 и Windows 2008 x64? 19.05.2010
  • Можете ли вы подтвердить, что .Net 2.0 установлен на машине 2003 года? Странно, что он не выбрал .Net 2.0, если он был установлен на машине 2003 года, поскольку по умолчанию он использовал .Net 2.0 framework на машине 2008 года. 19.05.2010
  • @Sijin, почему это странно? Насколько я могу судить по своему опыту работы с этой проблемой в прошлом, по умолчанию выбирается точно соответствующая среда выполнения. Таким образом, если вы запустите приложение 1.0 на машине с 1.1 и 2.0, оно может загрузить 2.0, но по моему опыту приложение 1.1 на машине с 1.1 загрузит 1.1. 20.05.2010

Ответы:


1

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

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

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

19.05.2010
Новые материалы

5 простых концепций Python, ставших сложными
#заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

«Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

Игра в прятки с данными
Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

«Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..