Проект deps.json не заполняется при использовании ссылки на проект, хотя он содержит встроенный пакет NuGet.Linux

Ответить
Anonymous
 Проект deps.json не заполняется при использовании ссылки на проект, хотя он содержит встроенный пакет NuGet.

Сообщение Anonymous »

У меня есть решение, содержащее проект библиотеки классов. Этот проект библиотеки классов включает в себя собственную библиотеку, которую я помещаю в подкаталог runtimes//native. У меня есть .csproj, настроенный для упаковки файлов библиотеки в папку среды выполнения внутри файла .nupkg, и когда я создаю
для этого построенного пакета, deps.json потребляющего проекта обновляется, чтобы найти собственную библиотеку в папке каждого RID.
Но если я сделаю ссылку проекта на библиотеку классов в том же решении, этот проект deps.json не заполняется необходимой информацией.
Итак, код, который ссылается на эту библиотеку классов как на пакет NuGet, работает, но если этот
заменить на , тот же код не запустится, поскольку он не знает, где найти собственный файл библиотеки.
Есть ли способ настроить библиотеку классов .csproj чтобы ссылки на проекты в одном решении получали ту же правильную конфигурацию deps.json, что и проекты, которые ссылаются на него через пакет NuGet?
ETA: чтобы увидеть это в действии, клонируйте эти два проекта:
https://github.com/logiclrd/QBX
https://github.com/logiclrd/DQD.ForkPTY
Вы должен иметь возможность компилировать и запускать QBX на Linux x64. (Целью DQD.ForkPTY является поддержка нескольких платформ, но опубликованная в настоящее время версия находится на ранней стадии и на данный момент поддерживает только linux-x64.)
QBX включает DQD.ForkPTY в качестве
. В результатах сборки вы должны увидеть дерево папок среды выполнения, включающее файл libDQD.ForkPTY.Native.Linux.so и файл deps.json, который направляет запуск linux-x64 к этому файлу.
Теперь откройте решение DQD.ForkPTY. В нем есть два проекта:
  • Код: Выделить всё

    DQD.ForkPTY
    создает библиотеку, на которую можно ссылаться, и упаковывает ее в пакет NuGet, который использует QBX.
  • Код: Выделить всё

    DQD.ForkPTY.Playground
    ссылается на DQD.ForkPTY внутри решения, а не как на пакет NuGet.

Код: Выделить всё

DQD.ForkPTY.Playground
компилируется, но сразу же аварийно завершает работу во время выполнения. В выходных данных сборки правильно копируется дерево среды выполнения, и libDQD.ForkPTY.Native.Linux.so находится в нужном месте, но DQD.ForkPTY.Playground.deps.json не обновляется, поэтому загрузка собственной библиотеки не перенаправляется. Он сканирует собственную библиотеку в BaseDirectory AppContext и путь загрузки библиотеки, но нигде больше.
Это может быть ошибкой/недосмотром в самой платформе, но мое первое предположение заключается в том, что я просто пропускаю какой-то шаг и делаю его не совсем правильно. :-)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»