Узел сборки не найден - PullRequest
       16

Узел сборки не найден

20 голосов
/ 07 октября 2008

Я использовал 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 \ NUnit-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

ошибка с вышеуказанной ошибкой.

Вероятно, я мог бы обойти это, скопировав dll NUnit.Framework в папку bin моего проекта, но я не помню, чтобы это делалось в прошлом. Более того, я получаю ту же ошибку в графическом интерфейсе. Разве GUI не должен знать, где находится фреймворк (то есть в той же папке)?

@ Скотт, я не использую 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 с одинаковым результатом.

Ответы [ 5 ]

12 голосов
/ 07 октября 2008

Убедитесь, что вы добавили ссылку на nunit.framework. Если это так, убедитесь, что в свойствах этой ссылки для свойства local копии установлено значение true.

11 голосов
/ 27 марта 2009

У меня была такая же проблема, и я установил, используя NUnit-2.4.8-net-2.0.msi. Расширяя комментарий «добавить к gac» выше, вот что я сделал:

  • Откройте «визуальную командную строку sudio» (обычно: убедитесь, что gacutil находится в вашем пути) и: cd «C: \ Program Files \ NUnit 2.4.8 \ bin»

  • Отмените регистрацию записей в gac. Вы можете сделать это, найдя объединенные записи, зарегистрированные в gac:

gacutil / л | find / i "nunit"> temp.bat && notepad 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, чтобы удалить их: temp.bat

  • Зарегистрируйте необходимые библиотеки dunit:

gacutil / i nunit.core.dll

gacutil / i nunit.framework.dll

9 голосов
/ 07 октября 2008

Если вы устанавливаете с использованием NUnit-2.4.8-net-2.0.msi, сборки NUnit добавляются в GAC.

Вы также можете переустановить вручную, запустив gacutil из командной строки VS2005.

2 голосов
/ 18 октября 2011

Обратите внимание, что текущая установка NUnit (2.5.10) не регистрируется автоматически в GAC. Если вы должны использовать GAC, зарегистрируйте его через gacutil / i, где nunitframeworkpath обычно равен% Program Files% \ NUnit \ net-2.0 \ framework \ nunit-framework

1 голос
/ 19 августа 2010

Сегодня я получил это сообщение об ошибке, когда попытался добавить новую тестовую сборку в существующий тестовый проект NUnit. Похоже, что мои тестовые проекты имели несколько ссылок на идентичные сборки nunit.framework.dll.

Если в вашем проекте NUnit имеется более одной тестовой сборки, вы можете проверить свойство Path ссылки nunit.framework в ваших тестовых проектах. Как только я их сопоставил, сообщение об ошибке исчезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...