#c# #nunit
#c# #nunit
Вопрос:
Я добавил пару папок в свой проект на C #, и теперь, когда я пытаюсь запустить проект из NUnit, я всегда сталкиваюсь со следующим исключением —
System.IO.FileNotFoundException: не удалось найти файл ‘xxxxbindebugproject.dll
DLL-файл проекта не сгенерирован, и сведения об исключении:
System.IO.FileNotFoundException...
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at NUnit.Core.AssemblyReader.CalcHeaderOffsets()
at NUnit.Core.AssemblyReader..ctor(String assemblyPath)
at NUnit.Util.RuntimeFrameworkSelector.SelectRuntimeFramework(TestPackage package)
at NUnit.Util.DefaultTestRunnerFactory.GetTargetProcessModel(TestPackage package)
at NUnit.Util.DefaultTestRunnerFactory.MakeTestRunner(TestPackage package)
at NUnit.Util.TestLoader.LoadTest(String testName)
Комментарии:
1. Действительно ли dll находится в `x x x x bin debug`? Или он в другом каталоге?
2. Нет, его там нет, dll не генерируется при сборке проекта.
Ответ №1:
Это путь к файлу, который вы ввели? Если это так, используйте проводник Windows, чтобы скопировать / вставить правильный путь, чтобы избежать любых опечаток.
Если это ссылочная библиотека dll, которую вы добавили через VS, вам следует удалить ссылку и добавить ее снова, чтобы обновить ее путь.
Как сказал @Oded, убедитесь, что файл существует и что путь указан правильно.
Комментарии:
1. При сборке проекта dll не генерируется, и поэтому выдается ошибка. Хотя я не уверен, почему dll не генерируется.
2. @Tarun: Посмотрим, смогу ли я понять вас лучше: у вас есть несколько проектов в рамках решения? И является ли один из них библиотекой классов, которую вы создаете? Если это так, вы можете нажать «Перестроить все» или вручную щелкнуть правой кнопкой мыши на нужном проекте и выбрать «Построить». Если у вас несколько проектов, проект, который генерирует .dll, может быть настроен на сборку исполняемого файла или что-то еще. То есть, проверьте проект-> свойства «название проекта»-> Приложение-> Тип вывода. Для него должно быть установлено значение Class library тогда и только тогда, когда оно должно генерировать класс.
3. @Eugenio, у меня есть только один проект, и для его выходных данных установлено значение «Библиотека классов», я создаю проект, как вы указали, но пока я не вижу dll проекта в папке bin debug. Раньше это было постоянно, когда я создавал проект. Единственное изменение, которое я внес с тех пор, — я создал пару папок и переместил файлы cs в эти папки. И теперь все обречено : (, интересно, должен ли я снова создать project…
4. @Tarun: «Обречен» — это очень сильное слово! 🙂 Хорошо. Давайте диагностируем это шаг за шагом: 1) как называется ваш проект. Это «проект» или что-то другое? 2) При сборке вашего проекта вы получаете какие-либо ошибки сборки? 3) Когда проект успешно собран, есть ли вообще какие-либо выходные библиотеки DLL? Как их зовут? Вы ожидаете, что их имя будет «project»? —- Короче говоря, генерирует ли Visual Studio вообще какую-либо DLL? и если этого не происходит, информирует ли он вас о проблеме?
5. @Tarun: Вы могли бы попробовать запустить новый проект, но лучше всего, если вы выясните, в чем причина проблемы. Вы пытались вернуть файлы .cs в их исходное местоположение? Возможно, происходит то, что VS не может найти исходные файлы, и, следовательно, он не может успешно собрать ваш проект для генерации dll. Это важно: можете ли вы проверить, есть ли какие-либо ошибки сборки? Вы можете сделать это, посмотрев на строку состояния в левом нижнем углу экрана после перестройки. Говорится ли в нем «Сборка выполнена успешно» или «Сбой сборки»?
Ответ №2:
Я не уверен, поможет ли это вам. Я пришел сюда в поисках той же ошибки. Я использовал что-то подобное в методе тестирования для чтения файла Json, который я только что добавил в проект.
строка CurrentDirectory = Каталог.GetCurrentDirectory();
Это выдавало ту же ошибку ‘System.IO.FileNotFoundException: не удалось найти файл’ в папке debug.
Я решил это, изменив настройки в файле. Щелкните правой кнопкой мыши > свойства > установить Копировать в выходной каталог, чтобы копировать всегда. Снимок экрана выше
Я не уверен, является ли это настройкой по умолчанию для файлов, которые вы добавляете вручную.