Вопрос
Я использовал NUnit раньше, но не в течение некоторого времени и никогда на этой машине.Я разархивировал версию 2.4.8 в разделе Program Files, и я продолжаю получать эту ошибку при попытке загрузить мои тесты.
Не удалось загрузить файл или сборку 'nunit.framework, версия = 2.4.8.0, Культура = нейтральная, PublicKeyToken=96d09a1eb7f44a77' или одну из его зависимостей.Системе не удается найти указанный файл**
Чтобы упростить задачу, я скомпилировал самый простой из возможных тестовых файлов.
using NUnit.Framework;
namespace test
{
[TestFixture]
public class Tester
{
[Test]
public void ATest()
{
Assert.IsTrue( false, "At least the test ran!" );
}
}
}
Я добавил "C:\Program Files Unit-2.4.8-net-2.0\bin" в свой PATH (и перезагрузился).Обратите внимание, что если я скопирую тестовую сборку в эту папку, то
C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console test.dll
работает, но
C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console c:\dev\nunit_test\test.dll
и
C:\dev\nunit_test>nunit_console test.dll
сбой с приведенной выше ошибкой.
Предположительно, я мог бы обойти это, скопировав NUnit.Framework dll в папку bin моего проекта, но я не помню, чтобы мне приходилось делать это в прошлом.Более того, я получаю ту же ошибку в графическом интерфейсе.Разве графический интерфейс не должен знать, где находится фреймворк (то есть в той же папке)?
@Scott, я не использую Visual Studio.Я использую следующую строку для компиляции тестового проекта.
%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /r:"C:\Program Files\NUnit-2.4.8-net-2.0\bin\nunit.framework.dll" /t:library /out:test.dll test.cs
@devio, я попробовал как msi, так и zip с тем же результатом.
Решение
Если вы устанавливаете с помощью NUnit-2.4.8-net-2.0.msi, сборки NUnit добавляются в GAC.
Вы также можете переустановить вручную, запустив gacutil из командной строки VS2005.
Другие советы
Убедитесь, что вы добавили ссылку на nunit.framework.Если у вас есть, то убедитесь, что для свойств этой ссылки свойству copy local присвоено значение true.
У меня была такая же проблема, и я установил ее с помощью NUnit-2.4.8-net-2.0.msi.Развивая комментарий "добавить в gac" выше, вот что я сделал:
Откройте свою "командную строку visual sudioкомандная строка (обычно:убедитесь, что gacutil находится на вашем пути) и:cd "C:\Program Файлы Unit 2.4.8\bin"
Отмените регистрацию ваших записей nunit в gac.Вы можете сделать это, найдя записи nunit, зарегистрированные в gac:
gacutil /l | find /i "nunit" > temp.bat && блокнот temp.bat
- Добавьте в строки nunit.core и nunit.framework "gacutil /uf", т. е.:
gacutil /uf nunit.core, Версия = 2.4.2.0, Культура = нейтральная,PublicKeyToken=96d09a1eb7f44a77
gacutil /uf nunit.framework, Версия = 2.4.2.0, Культура = нейтральная,PublicKeyToken=96d09a1eb7f44a77
Запустите свой bat-файл, чтобы удалить их:темп.летучая мышь
Зарегистрируйте нужные вам библиотеки DLL nunit:
gacutil /я nunit.core.dll
gacutil /я nunit.framework.dll
Обратите внимание, что текущая установка NUnit (2.5.10) не регистрируется автоматически в GAC.Если вам необходимо использовать GAC, зарегистрируйте его через gacutil /i, где nunitframeworkpath обычно равен %Program Files% Unit et-2.0\framework unit-framework
Я получил это сообщение об ошибке сегодня, когда попытался добавить новую тестовую сборку в существующий тестовый проект NUnit.Похоже, что в моих тестовых проектах было несколько ссылок на пути к идентичным nunit.framework.сборки dll.
Если у вас есть более одной тестовой сборки в вашем проекте NUnit, вы можете захотеть проверить свойство Path ссылки nunit.framework в ваших тестовых проектах.Как только я сопоставил их, сообщение об ошибке исчезло.