Ответ 1
Если вы устанавливаете с помощью NUnit-2.4.8-net-2.0.msi, сборки NUnit добавляются в GAC.
Вы также можете переустановить вручную runnig gacutil из командной строки VS2005.
Я использовал NUnit раньше, но не через некоторое время, и никогда на этой машине. Я разархивировал версию 2.4.8 в разделе Program Files, и я продолжаю получать эту ошибку при попытке загрузить мои тесты.
Не удалось загрузить файл или сборку 'nunit.framework, Version = 2.4.8.0, Culture = neutral, 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 не должен знать, где находится инфраструктура (то есть в той же папке)?
@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.
Вы также можете переустановить вручную runnig gacutil из командной строки VS2005.
Убедитесь, что вы добавили ссылку на nunit.framework. Если у вас есть, убедитесь, что свойства этой ссылки имеют локальное свойство копирования, равное true.
У меня была та же проблема, и я установил с помощью NUnit-2.4.8-net-2.0.msi. Расширив комментарий "добавить к gac" выше, вот что я сделал:
Откройте свою "визуальную командную команду sudio" (обычно: убедитесь, что gacutil находится на вашем пути) и: cd "C:\Program Files\NUnit 2.4.8\bin"
Отмените регистрацию записей nunit из gac. Вы можете сделать это, найдя записи nunit, зарегистрированные в gac:
gacutil/l | find/i "nunit" > temp.bat && & & блокнот temp.bat
gacutil/uf nunit.core, Версия = 2.4.2.0, Культура = нейтральная, PublicKeyToken = 96d09a1eb7f44a77
gacutil/uf nunit.framework, Version = 2.4.2.0, Culture = neutral, PublicKeyToken = 96d09a1eb7f44a77
Запустите файл bat, чтобы удалить их: temp.bat
Зарегистрируйте требуемые DLL файлы nunit:
gacutil/i nunit.core.dll
gacutil/i nunit.framework.dll
Обратите внимание, что текущая установка NUnit (2.5.10) не регистрируется автоматически на GAC. Если вы должны использовать GAC, зарегистрируйте его через gacutil/i, где nunitframeworkpath обычно% Program Files%\NUnit\net-2.0\framework\nunit-framework
Я получил это сообщение об ошибке сегодня, когда попытался добавить новую тестовую сборку в существующий тестовый проект NUnit. Похоже, что мои тестовые проекты имели несколько ссылок на ссылки на идентичные сборки nunit.framework.dll.
Если в проекте NUnit имеется несколько тестовых сборок, вы можете проверить свойство Path для ссылки nunit.framework в ваших тестовых проектах. Как только я их сопоставил, сообщение об ошибке исчезло.