NUnit “недостающий” GPSVC.DLL в Windows 7/64

Я недавно обновил от Vista/32 до Win7/64. На моей старой машине все хорошо работало.

К сожалению, на моей новой машине NUnit не загрузит мои модульные тесты с сообщением об ошибке "Система. IO.FileNotFoundException: не Мог загрузить файл или блок 'UnitTest' или одна из его зависимостей. Система не может найти файл указанным". (На самом деле я должен был пройти все проекты своего решения и установить их на 32-разрядный для получения настолько далеко.)

Таким образом, я загрузил Зависимость Walker, и она сказала мне, что я пропускал IESHIMS.DLL. Я нашел два на моей машине, таким образом, я скопировал в 32-разрядной версии с каталога Internet Explorer, и DW прекратил жаловаться на тот файл.

Однако это также пропускает GPSVC.DLL. Я нашел только одну копию этого в C:\Windows\System32, но когда я копирую это в свой каталог модульного теста, DW жалуется, что это является 64-разрядным, и NUnit все еще не будет работать. Это также теперь добавляет SYSNTFY.DLL к недостающему списку. Я только получил одного из тех, и это является также 64-разрядным. NUnit все еще сообщает об ошибке.

Таким образом, я должен фрагментировать эту 64-разрядную ОС и вернуться к 32-разрядному старому доброму, или я пропускаю что-то очевидное?

21
задан Noel Kennedy 14 April 2010 в 15:16
поделиться

2 ответа

Сегодня я столкнулся с той же проблемой, к счастью, есть и очень простое решение, и более сложное.

Простое исправление - запустить nunit-console-x86.exe вместо nunit-console.exe

Сложное исправление с частичным объяснением:

Что происходит, так это то, что средство запуска консоли nunit работает в 64-битный режим, который каким-то образом мешает ему загружать ваши библиотеки модульных тестов, которые находятся в 32-битном режиме.

Внесено исправление в исполняемый файл консоли nunit: вы говорите Windows принудительно запустить его в 32-битном режиме совместимости. По этой ссылке показано, как это сделать.

NB, вам также необходимо загрузить SDK для Windows, чтобы получить corflags.exe, не забудьте запустить команду из командной строки SDK.

10
ответ дан 29 November 2019 в 22:11
поделиться

Единственный способ заставить его работать — преобразовать все мое приложение в 32-разрядный целевой сервер и протестировать его на 32-разрядной виртуальной машине. Кроме того, библиотеки DLL должны были находиться на локальном (несетевом) диске, потому что отладка не разрешена на сетевых дисках (по крайней мере, я не смог заставить его работать).

0
ответ дан 29 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: