Ошибка на опубликованном основном сайте ASP.NET: не удается найти расположение библиотеки компиляции для пакета «Microsoft.AspNet.WebApi.Client» - PullRequest
0 голосов
/ 26 августа 2018

Мое веб-приложение работает нормально при запуске из Visual Studio, но когда я публикую и пытаюсь загрузить страницу, я получаю:

InvalidOperationException: не удается найти расположение библиотеки компиляции для пакета 'Microsoft.AspNet.WebApi.Client' Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths (преобразователь ICompilationAssemblyResolver, список сборок)

Я застрял на этом довольно долго. Я попытался применить различные обходные пути в потоке https://github.com/dotnet/core-setup/issues/2981,, но ни один из них не сработал.

Мой файл csproj вставлен ниже. Я не уверен, какая другая информация будет полезна:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>aspnet-CrowdQuery2-8C668DB3-5C80-4D9E-851D-2434D0CDA7E9</UserSecretsId>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>

  <PropertyGroup>
    <RuntimeFrameworkVersion>2.1.2</RuntimeFrameworkVersion>    
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.6" />
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.3" PrivateAssets="All" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="ViewModels\" />
  </ItemGroup>

</Project>

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Если вы размещали предыдущую версию ASP.NET, хотя недавно публиковали веб-приложение, все равно будут файлы dll, ссылающиеся на ранее опубликованную версию .NET.

Поэтому вы должны вручную очистить папку wwwroot. Здесь все файлы размещаются при публикации ваших пакетов в веб-приложении Azure. Доступ к папке wwwroot можно получить с помощью параметра «Дополнительные инструменты» в настройках веб-приложения Azure.

enter image description here

Вы получите URL-адрес в своем веб-приложении с scm в середине.

  • Перейти к консоли отладки> Powershell
  • В структуре папок перейдите на сайт, затем wwwroot
  • Очистить все файлы в wwwroot

После развертывания веб-приложение будет опубликовано без ошибок

0 голосов
/ 29 октября 2018

У меня была такая же проблема при использовании Microsoft Azure.

Решением в этом случае было очистить папку wwwroot в нашем веб-приложении с помощью Kudu ( Инструменты разработки -> Расширенные настройки ), поскольку до обновления еще оставались некоторые старые библиотеки DLL. в .NET Core 2.1, поскольку .NET Core 1 публикует библиотеки DLL в папку wwwroot, тогда как в версии 2.1 библиотеки DLL загружаются из глобального хранилища.

После полного опустошения папки wwwroot и повторного развертывания приложения ошибка была устранена, и приложение запустилось, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...