Microsoft Visual Studio: System.IO.FileNotFoundException в консольном приложении, которое ссылается на библиотеку, в которой должен находиться рассматриваемый файл - PullRequest
0 голосов
/ 20 декабря 2018

Я создал класс библиотеки ac # (называемый IfcManagerLib) в Visual Studio и установил некоторые пакеты (только в библиотеке) через диспетчер пакетов NuGet.Теперь я хочу использовать эту библиотеку через консольное приложение (называемое IfcManagerConsole), поэтому я создал ее в том же решении, добавил ссылку на IfcManagerLib и добавил «using IfcManagerLib;»на вершине консольного класса.Однако, если я запускаю консоль, она всегда прерывается в тот момент, когда она пытается выполнить что-то из библиотечного класса.Он выводит следующую ошибку:

System.IO.FileNotFoundException HResult = 0x80070002 Message = Die Datei oder Assembly "Microsoft.Extensions.Logging.Abstractions, Version = 2.2.0.0, Culture = нейтральный, PublicKeyToken =adb9793829ddae60 "oder eine Abhängigkeit davon wurde nicht gefunden.Das System kann die angegebene Datei nicht finden.Source = IfcFileManagerLib
StackTrace: at IfcFileManagerLib.IfcManager.Start () в C: \ Users \ David \ Dropbox \ Visual Studio \ source \ repos \ IfcFileManager \ IfcFileManagerLib \ IfcManager.cs.Pro: строка 101 в IfcFileMgramСтрока [] args) в C: \ Users \ David \ source \ repos \ IfcFileManager \ IfcFileManagerConsole \ Program.cs: строка 36

Внутреннее исключение 1: FileNotFoundException: штамп даты сборки "Microsoft.Extensions.Logging.Абстракции, версия = 2.1.1.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60 "oder eine Abhängigkeit davon wurde nicht gefunden.Das System kann die angegebene Datei nicht finden.

(Извините, часть написана на немецком языке, но я думаю, вы в основном знаете, что она должна сказать)

Что действительно беспокоитмне, что путь к IfcManagerLib (C: \ Users \ David \ Dropbox \ Visual Studio \ source \ repos \ IfcFileManager \ IfcFileManagerLib \ IfcManager.cs) в приведенном выше сообщении об ошибке является неправильным.Это старый путь.Я перестроил решение, удалил и переустановил все пакеты, но ошибка все еще существует.Также: «Microsoft.Extensions.Logging.Abstractions, Version = 2.1.1.0» неверен, я обновил его до 2.2.0.0.

Я прав в предположении, что консольный проект НЕ ДОЛЖЕН иметьустановленные пакеты, которые использует библиотека?Если да, что я сделал не так?

РЕДАКТИРОВАТЬ: Хорошо.Очистка и восстановление решения уже сделали многое.Тем не менее, есть одна DLL-библиотека под названием Xbim Geometry, которую консоль все еще не может найти.Вот сообщение об ошибке:

System.IO.FileLoadException HResult = 0x80131621 Сообщение = Не удалось загрузить Xbim.Geometry.Engine64.dll Source = Xbim.Geometry.Engine.Interop StackTrace: at Xbim.Geometry.Engine.Interop.XbimGeometryEngine..ctor (регистратор ILogger`1) в C: \ buildagent_os_work \ 1 \ s \ Xbim.Geometry.Engine.Interop \ XbimGeometryEngine.cs: строка 65 в Xbim.ModelGeometry.Sxtne_Ex) в C: \ buildagent_os_work \ 1 \ s \ Xbim.ModelGeometry.Scene \ Xbim3DModelContext.cs: строка 486 в Xbim.ModelGeometry.Scene.Xbim3DModelContext.CreateContext (ReportProgressDelegate prog:Xbim.ModelGeometry..[] args) в C: \ Users \ david \ source \ repos \ IfcFileManager \ IfcFileManagerConsole \ Program.cs: строка 36

Внутреннее исключение 1: FileNotFoundException: Die Datei сборки "Xbim.Geometry.Engine.dll" или Abhängigkeit Давон Вюрде, не обращая внимания.Das System kann die angegebene Datei nicht finden.

Мне показалось странным, что, в отличие от других библиотек, которые я установил в проекте библиотеки через менеджер NuGet, библиотека XbimGeometry находится в двух папках с именем x64 иx86, где есть 64-битная и 32-битная версия.Может ли это быть проблемой?

1 Ответ

0 голосов
/ 20 декабря 2018
  1. Можете ли вы сделать чистое решение и перестроить решение.
  2. Можете ли вы установить ссылку в качестве ссылки на проект и установить «Копировать локальную» для этой ссылки?
...