Проект веб-сборки Blazor Не Может Ссылаться На Библиотеку Классов NETCore

#visual-studio #blazor #blazor-webassembly

Вопрос:

Я пытаюсь ссылаться на библиотеку классов из проекта веб-сборки Blazor, но получаю ошибку, на которую не могут ссылаться проекты веб-сборки Blazor ASP.NET Основные общие рамочные проекты. Я попытался изменить целевую библиотеку классов на .Net Framework, но это ее нарушает. Я в растерянности. Как мне получить ссылку на эту библиотеку классов?

Файл проекта библиотеки классов:

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.9">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.9">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Piranha" Version="9.1.1" />
    <PackageReference Include="Piranha.AspNetCore" Version="9.1.0" />
  </ItemGroup>

</Project>
 

введите описание изображения здесь

Комментарии:

1. На какую версию «.Net Framework» вы ее изменили?

2. 4.5.1, Kirk. Но я начинаю думать, что проблема не в этом. Я начал совершенно новый проект Blazor и вместо того, чтобы пытаться ссылаться на библиотеку классов в виде каркаса, я встроил базу данных в узел BlazorWebAssembly. Общая библиотека классов. Кажется, это работает, но я не слишком доволен тем, что не могу повторно использовать библиотеку классов. Как бы разрушает весь СУХОЙ принцип.

3. Ну, поскольку 4.5.1 абсолютно никогда не будет работать для этого, это действительно, по крайней мере, часть вашей проблемы. На этом этапе все ваши проекты (включая библиотеку классов) должны быть нацелены на .NET5 (и вскоре .NET6).

Ответ №1:

Я пытаюсь сослаться на библиотеку классов из проекта веб-сборки Blazor

WebAssembly поддерживает подмножество .net[5/core]. И это подмножество не включает классы SQLServer.

Прямая ошибка может указывать на какую-то другую причину, это не ясно. Но эта установка не сработает. Все операции с базой данных должны выполняться на Сервере.

Вот почему у нас есть [x] asp.net core hosted опция в мастере создания нового проекта.