dll из nuget не копируется из lib ref в bin exe [RESOLVED]
От: vaa  
Дата: 08.06.22 03:45
Оценка:
Пытаюсь запилить небольшое апи в настольное приложение .net472
https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
Пакет Microsoft.AspNet.WebApi.OwinSelfHost
почему-то из bin библиотеки с вебапи не копирует в bin приложения
файл Microsoft.Owin.Host.HttpListener.dll из пакета.
Можно ли в csproj библиотеки настроить чтобы копировался в bin приложения?

Уточнение.
Проблема действительно существует в старом фрэйворке(в корке норм).

Ошибка Microsoft.Owin.Host.HttpListener не найден указывает, что объект создается через рефлексию,
а следовательно не имеет явной ссылки в коде на библиотеку.
Поэтому то и не копируется, придется мутить build Task-у.

Решение:
тип работы с нугетом не влияет
хоть package.json хоть ref-proj
CopyLocal и
даже совет интернет-гуру
  <PropertyGroup>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
  </PropertyGroup>

в итоге в библиотеке добавил код:
            try
            {
                Microsoft.Owin.Host.HttpListener.OwinServerFactory.Initialize(null);
            }
            catch { }

компилятор видимо шибко умный, нет явной ссылки из код выкину нафиг.
да nameof не спас, видимо преобразует в константу.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 09.06.2022 3:53 Разраб . Предыдущая версия . Еще …
Отредактировано 09.06.2022 2:30 Разраб . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.