Пакет NuGet не может развернуть фактически dll.deploy в IIS

Возникла проблема с получением зависимости для развертывания с приложением VB.NET WinForms. Приложение запускается, но возникают ошибки при ссылке/использовании библиотеки DLL. При проверке DLL не находится в каталоге установки пользователя.

Я установил новый пакет NuGet (первый NuGet в этом решении), и он отлично работает. Я реализовал это, протестировал локально. Глядя на папку bin (это в отладке), я вижу, что все библиотеки DLL там ... отлично.

Я могу опубликовать приложение с ClickOnce без проблем. Я развертываю IIS 8.0 с веб-ресурсом. На веб-сервере DLL тоже нет.

В меню «Файлы приложения...» в разделе «Публикация» есть все ссылки на CefSharp, которые включают, требуют, включают во все столбцы. Это заставляет ClickOnce включать их в качестве ресурсов, верно?

В ссылках в Visual Studio все они имеют значение Copy Local = True. Однако... когда я меняю Copy Local, ничего не меняется в моей истории GIT/истории изменений!! Visual Studio видит и распознает, что .vbproj был изменен, однако не было никаких видимых (unicode ?) изменения. Я могу совершить.

Я использую последнюю версию Visual Studio, VS2019 16.8.2 по причинам Blazor/ASP.NET Core. Должен ли я попробовать понизить рейтинг?

Я добавил элемент управления на основе оболочки Chromium, чтобы заменить универсальный веб-элемент управления IE7 в .NET Framework. Я работаю в приложении .NET 4.6. х86.

Репозиторий CefSharp GIT. https://github.com/cefsharp/cefsharp

Я использую пространства имен CefSharp.Common и CefSharp.WinForms в своем приложении.

Предупреждения о невозможности публикации свойств DLLS.

Изменить: возможный дубликат: невозможно применить публикацию свойства элемента X

Редактировать2:

Вот выдержка из моего .vbproj

  <ItemGroup>
    <PublishFile Include="CefSharp">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Include</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
    <PublishFile Include="CefSharp.Core">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Include</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
    <PublishFile Include="CefSharp.WinForms">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Include</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
    <PublishFile Include="FlexCell">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Include</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
  </ItemGroup>
  <ItemGroup>
    <WCFMetadata Include="Service References\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="CefSharp.Common">
      <Version>86.0.241</Version>
    </PackageReference>
    <PackageReference Include="CefSharp.WinForms">
      <Version>86.0.241</Version>
    </PackageReference>
  </ItemGroup>

РЕШЕНО: Редактировать: это не полностью решило мою проблему в одиночку, но было попыткой взлома вручную ввести все ресурсы, и это сработало.

Редактировать 3: ОК. Ни одно из этих решений не сработало, включая переход на версию 16,4, что было весело. Установите необходимые библиотеки CefLibrary.WinForms и т. д. Затем соберите проект. Он должен собраться. Это создает .dll в вашем каталоге \bin в вашей файловой системе.

Изменить 4: сдаться. Visual Studio 16.8.2 и 16.8.1 просто сломаны. Вы можете сделать это в кроличью нору (это декабрь 2020 года), но похоже, что команда визуальной студии https://github.com/dotnet/roslyn/issues/48679 прямо сейчас возникают проблемы со ссылками. (эта единственная функция, которая не менялась в течение 20 лет). У них даже нет eta - после того, как они сломали важную функцию - в корпоративном / производственном продукте. Это был не превью, лол. Как это прошло модульное тестирование: D Для моего случая использования CefSharp мне нужно было загрузить PDF. Вместо этого я не использую непосредственно элемент управления Adobe ActiveX.

Взгляните на этот запрос https://github.com/cefsharp/CefSharp/issues/3274 Это было совсем недавно (ноябрь 2020 г.), и он исправил это. Переместите их в лучшее место, может быть, в папку ссылок, а затем фактически сошлитесь на них вручную через VS2019, как и любую другую .dll.

Я предполагаю, что это ошибка, а не предполагаемый рабочий процесс, поскольку он потратил почти 10 часов на гугление в кроличьей норе. ‹-- На самом деле это была ошибка.

Решение: нет. Очевидно. В последней версии всего по состоянию на 2 декабря 2020 г. — стабильной и все — ваша собственная реализация CefSharp будет нарушена даже при правильной настройке в соответствии со спецификацией других примеров при компиляции с 16.8.1 или 16.8.2 (но это не так). также работает с 16.6.2)

https://github.com/cefsharp/CefSharp/issues/3274


person anon-fishy-boi938    schedule 01.12.2020    source источник
comment
См. stackoverflow.com/questions/34225222/ и github.com/cefsharp/CefSharp/issues/1314   -  person amaitland    schedule 01.12.2020
comment
Я лично избегаю Clockonce, так как его сложно отлаживать. Если вы развернете bin на целевой машине, все ли будет работать так, как ожидалось? В основном подтверждение того, что все зависимости установлены. Используя github.com/cefsharp/CefSharp/issues/1314#issuecomment-653698789 должен включать все необходимые файлы при использовании packages.config. Вы используете PackageReference, поэтому он может немного отличаться, обязательно включите цели после записей PackageReference. Ваши записи в файле публикации включают только управляемые ресурсы, неуправляемые не будут скопированы.   -  person amaitland    schedule 03.12.2020
comment
Я также научился презирать-слегка-потом-больше-и-больше по мере того, как случаются случайные, неожиданные и часто сбивающие с толку ошибки. Что это, ваше приложение теперь выдает ошибку для пользователя, но только для некоторых пользователей? Я видел ответы MS: «Просто скажите пользователю сначала удалить, что за шутка». Я использую ClickOnce в своей работе для развертывания многих приложений WinForms. Изменить: пожалуйста, проверьте все мои ответы и правки выше. Я не виноват, что конфиг неправильный. М.С. Ответил выше и сказал, что внутренне исправлено. Жаль, что это было месяц назад. (превью 16.9 объявлено тогда же)   -  person anon-fishy-boi938    schedule 03.12.2020
comment
Я бы предложил использовать msbuildlog.com для анализа вывода сборки, что очень полезно для отладки.   -  person amaitland    schedule 04.12.2020