В состав пакета nuget мы включаем библиотеки DLL, скомпилированные со всеми различные типы аппаратной поддержки (CUDA, OpenCL, Vulkan, AVX/AVX2/AVX512 и т. д.). Во время выполнения выбирается наилучший возможный бэкэнд для доступного оборудования.
Здесь вы можете увидеть текущую иерархию папок со всеми бэкэндами. Автоматический выбор зависит от этого точного макета, чтобы иметь возможность найти соответствующие библиотеки DLL. Файл nuspec, используемый для сборки пакета, находится здесь.
Однако при текущей настройке это не удается при публикации «автономной» сборки (в Visual Studio: «Сборка» > «Опубликовать», установите режим развертывания). «самостоятельным»). Это выдаст следующую ошибку:
Код: Выделить всё
Found multiple publish output files with the same relative path:
- llamasharp.backend.cpu\0.11.1\runtimes\win-x64\native\avx\llama.dll,
- llamasharp.backend.cpu\0.11.1\runtimes\win-x64\native\avx2\llama.dll,
- llamasharp.backend.cpu\0.11.1\runtimes\win-x64\native\avx512\llama.dll,
- llamasharp.backend.cpu\0.11.1\runtimes\win-x64\native\llama.dll
Как правильно способ распространить иерархию папок DLL через nuget и сохранить структуру в окончательной сборке?
Подробнее здесь: https://stackoverflow.com/questions/784 ... s-in-nuget