Вопрос

Я использовал 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 в ваших тестовых проектах.Как только я сопоставил их, сообщение об ошибке исчезло.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top