Почему одна библиотека .net нуждается в ссылке на зависимость другой библиотеки .net - PullRequest
0 голосов
/ 28 августа 2018

У меня странная проблема. В моем решении несколько проектов стандартного класса .net. Существует один .NET стандартный проект библиотеки классов 2.0 , называемый Messaging (.csproj), который использует ActiveMQ для передачи и чтения данных из него. Это проектная ссылка на библиотеку Apache.NMS. Теперь у меня есть еще один проект под названием Core (.csproj), который ссылается на проект Messaging. Во время вызова конструктора класса внутри проекта Messaging в проекте Core я получаю сообщение об ошибке, что System не может найти Apache.NMS dll. Если я добавлю эту ссылку в основной проект, то все будет нормально, но я действительно не понимаю, почему это происходит. С чистой структурой .net я никогда не сталкивался с этой проблемой. Раздельные проекты со своими ссылками и работают самостоятельно. Кто-нибудь может помочь с этим? Я добавил все ссылки из nuget

1 Ответ

0 голосов
/ 28 августа 2018

После долгих исследований я нашел решение этой проблемы. То, что происходило, находилось в папке bin в .NET framework / standard project, зависимые dll ссылочных проектов не копировались.

Решение для проекта .NET Framework: Откройте файл .csproj и добавьте нижнюю строку в первый тег

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

Решение для .NET Standard / Core проекта: Откройте файл .csproj и добавьте ниже строки первый тег

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

Теперь скомпилируйте проекты, и вы увидите, что все необходимые библиотеки DLL присутствуют в папке bin. Надеюсь, что это поможет кому-то еще, кто сталкивается с той же проблемой.

...