shtrih-m / fr_drv_ng

релизы и поддержка драйвера fr_drv_ng
35 stars 4 forks source link

C# Добавление либы в проект #286

Open Ilise-dot opened 1 month ago

Ilise-dot commented 1 month ago

Всем привет. А как вы добавляли либу в проект шарпа? Добавляю референсом в проект и ловлю ошибку: Unable to add reference "Unable to read assembly metadata from '...folder\Debug\classic_fr_drv_ng_csharp.dll'."

Мои действия: 1) скачал dll по ссылке с релиза fr_drv_ng_windows_x86_64_msvc_1.6.0-21-ge5b15e7.zip 2) закинул в папку classic_fr_drv_ng.lib 3) создал папку csharp (без нее, во время выполнения swig будет ошибка, что папки csharp нет) 4) генерирую обертку через swig 5) в папке csharp появились другие файлы с расширением .cs и 1 файл cxx. 6) создали файл CMakeLists.txt и закинули туда скрипт с 2 пункта 7) собираем либу 8) Либа создана D:\library>cmake --build . Версия MSBuild 17.9.8+b34f75857 для .NET Framework

1>Checking Build System Building Custom Rule D:/library/CMakeLists.txt classic_interface_wrap.cxx D:\library\csharp\classic_interface_wrap.cxx(20059,3): warning C4244: аргумент: преобразование "int64_t" в "double", во зможна потеря данных [D:\library\classic_fr_drv_ng_csharp.vcxproj] Создается библиотека D:/library/Debug/classic_fr_drv_ng_csharp.lib и объект D:/library/Debug/classic_fr_drv_ng_csh arp.exp classic_fr_drv_ng_csharp.vcxproj -> D:\library\Debug\classic_fr_drv_ng_csharp.dll Building Custom Rule D:/library/CMakeLists.txt Ест один варнинг, но все собралось. В папке Debug лежат файлы classic_fr_drv_ng_csharp.dll, classic_fr_drv_ng_csharp.exp, classic_fr_drv_ng_csharp.lib, classic_fr_drv_ng_csharp.pdb. 9) Добавляю в мой проект референс на classic_fr_drv_ng_csharp.dll и ловлю ошибку.

Что-то не то при билде собрал? Или же пропустил какой-то шаг? Или же либу просто нужно перекинуть в корень проекта? Может кто-то подскажет. Буду благодарен.

Делал по инструкции https://github.com/shtrih-m/fr_drv_ng_examples/tree/master/classic_csharp

Ilise-dot commented 1 month ago

Все, кажется разобрался. Либу не нужно добавлять рефом. Нужно перекинуть файлы с папки csharp и закинуть либу в корень. https://github.com/shtrih-m/fr_drv_ng/issues/277#issuecomment-1948273939