Правильное включение native-library в NuGet-пакет...
От: Shmj Ниоткуда  
Дата: 19.06.20 09:52
Оценка: +1 -1
Смотрю на образцовые библиотеки, к примеру SQLite. Они добавили папку runtimes внутри которой отдельная папка для каждой операционной системы:



У меня нет нужды в поддержке такого количества операционных систем — только Linux и Windows. По этому размещаю 2 либы: mylib.dll и mylib.so в корне и без доп. манипуляций данный код работает в каждой из систем (расширение dll или so выбирается автоматически — мне не нужно это прописывать).

[DllImport("mylib")]
internal static extern int Initialize();


Вопросы такие:

1. Стоит ли соблюдать структуру папок runtimes/win-x64/native? Является ли это стандартом? Никакой поддержки фреймворком, насколько я вижу, нет.

2. Можно ли без создания nuspec — только лишь конфигурированием в csproj-файле вместе с основной либой добавлять в пакет и зависимые native-библиотеки? Что-то искал и не нашел как...
Отредактировано 19.06.2020 10:01 Shmj . Предыдущая версия . Еще …
Отредактировано 19.06.2020 9:53 Shmj . Предыдущая версия .
Re: Правильное включение native-library в NuGet-пакет...
От: Egorio Россия  
Дата: 20.06.20 15:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Смотрю на образцовые библиотеки, к примеру SQLite. Они добавили папку runtimes внутри которой отдельная папка для каждой операционной системы:


S>Image: 1595151935


S>У меня нет нужды в поддержке такого количества операционных систем — только Linux и Windows. По этому размещаю 2 либы: mylib.dll и mylib.so в корне и без доп. манипуляций данный код работает в каждой из систем (расширение dll или so выбирается автоматически — мне не нужно это прописывать).


S>
S>[DllImport("mylib")]
S>internal static extern int Initialize();
S>


S>Вопросы такие:


S>1. Стоит ли соблюдать структуру папок runtimes/win-x64/native? Является ли это стандартом? Никакой поддержки фреймворком, насколько я вижу, нет.


S>2. Можно ли без создания nuspec — только лишь конфигурированием в csproj-файле вместе с основной либой добавлять в пакет и зависимые native-библиотеки? Что-то искал и не нашел как...


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

Пример манипуляции нугет пакетом при одном проекте в решении:

Открываем проект-> в Обозревателе решений нажим. пр. кнопкой мыши, выбираем пункт "Управл-е пакетами nuget", далее открывается вкладка nuget, выбираем "Обзор", вводим в стр. поиска технологию, например SQLite-> выбираем нужный пакет, в загрузившейся панели с описанием выбр. пакета выбир. нужную версию, жмем установить.

В вкладке "Установлено" можем удалить или обновить установл. пакеты.

Если качаете пакеты с nuget.org, то структуру папок соблюдать не надо, просто качаете папку с названием своей опер. сист-ы и копируете содержимое папки в папку nuget которая прописана в VS.

Csproj формируется автоматически, перед установкой либы я обычно устанавливаю зависимые либы (зависимости). Список зависимостей можно посмотреть во вкладке Nuget.
Re[2]: Обозреватель решений
От: Qbit86 Кипр
Дата: 20.06.20 15:59
Оценка: +1
Здравствуйте, Egorio, Вы писали:

E>Если раб. комп. с Вижуал студией подключен к интернету, то студия нугет пакеты скачивает самостоятельно.


У топик-стартера вопрос не про использование NuGet-пакетов, а про создание, насколько я понял.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Правильное включение native-library в NuGet-пакет...
От: Shmj Ниоткуда  
Дата: 21.06.20 17:35
Оценка:
Здравствуйте, Egorio, Вы писали:

E>Если раб. комп. с Вижуал студией подключен к интернету, то студия нугет пакеты скачивает самостоятельно.


Тут вопрос про создание своего пакета, в котором кроме управляемой сборки еще и нейтивные, т.е. не .Net.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.