4.10 Подключаемый модуль со ссылкой на пакет NuGet развертывается неправильно

У меня есть простой плагин nopCommerce 4.10, который при развертывании и загрузке не может найти сборки, на которые ссылается пакет Nuget.

Исключение: плагин «мой плагин». Не удалось загрузить файл или сборку «IdentityServer4, версия = 2.1.1.0, культура = нейтральная, PublicKeyToken = null». Система не может найти указанный файл.

Если я скопирую сборку пакета nuget непосредственно в проект и обработаю ее как содержимое и разверну, сборка будет найдена и загружена, однако это будет взломано и не может работать так, как это должно работать.

Я вижу, что плагин Nop.Plugin.Payments.Square использует RestSharp, однако сам не ссылается на пакет Nuget, а вместо этого является копией сборки в корне каталога плагина, как я сделал в своем обходном пути.

Итак, вопрос в том, как пакеты nuget, на которые ссылаются плагины, должны быть развернуты и разрешены?


person Todd Carter    schedule 02.08.2018    source источник
comment
Это решено?   -  person Divyang Desai    schedule 01.09.2018


Ответы (1)


Мое последнее решение использует CopyLocalLockFileAssemblies в plugin.csproj:

<PropertyGroup>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>

он скопирует все ссылки, а не только пакеты NuGet, артефакт плагина будет довольно большим, но он работает.

Я пытаюсь найти лучший способ, но пока не повезло.

person Aquila    schedule 02.09.2018
comment
На данный момент это предпочтительное решение. Если вы посмотрите на определение встроенных плагинов (в csproj), вы найдете этот комментарий выше ‹CopyLocalLockFileAssemblies›false‹/CopyLocalLockFileAssemblies›: установите для этого параметра значение true, чтобы библиотеки DLL были скопированы из кэша NuGet в выходные данные ваш проект. Вам необходимо установить для этого параметра значение true, если у вашего плагина есть пакет nuget, чтобы убедиться, что библиотеки dll копируются из кеша NuGet в выходные данные вашего проекта. - person Alin Mircea; 27.04.2020