【问题标题】:Blazor WASM Project Referencing Error (BLAZORSDK1001)Blazor WASM 项目引用错误 (BLAZORSDK1001)
【发布时间】:2021-08-12 10:25:35
【问题描述】:

我有一个服务器项目,现在尝试将其转换为渐进式 Web 应用程序。当我向它引用 API、模型和 UI 项目时,会出现以下错误:

<Target Name="_FailIfReferencingAspNetCoreApp" BeforeTargets="ResolveRuntimePackAssets">
    <Error
      Code="BLAZORSDK1001"
      Text="The project references the ASP.NET Core shared framework, which is not supported by Blazor WebAssembly apps. Remove the framework reference if directly referenced, or the package reference that adds the framework reference."
      Condition="'@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count())' != '0'" />
</Target>

以下代码是项目的.csproj,是不是我遗漏了什么?

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

    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
    </PropertyGroup>

    <ItemGroup>
        <Content Remove="wwwroot\service-worker.js" />
    </ItemGroup>

    <ItemGroup>
        <PackageReference Include="Blazored.Toast" Version="3.1.2" />
        <PackageReference Include="BlazorInputFile" Version="0.2.0" />
        <PackageReference Include="DevExpress.Blazor" Version="20.1.7" />
        <PackageReference Include="Hangfire.AspNetCore" Version="1.7.11" />
        <PackageReference Include="Hangfire.Core" Version="1.7.11" />
        <PackageReference Include="Hangfire.SqlServer" Version="1.7.11" />
        <PackageReference Include="LiquidTechnologies.Blazor.ModalDialog" Version="0.9.7" />
        <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.4" />
        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.4" PrivateAssets="all" />
        <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
        <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.3" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.3" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.3" />
        <PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="5.0.5" />
        <PackageReference Include="Microsoft.AspNetCore.SignalR.Client.Core" Version="5.0.5" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.3">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
        <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
        <PackageReference Include="QRCoder" Version="1.4.1" />
        <PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
        <PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
        <PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.0.1" />
        <PackageReference Include="Serilog.Sinks.MSSqlServer" Version="5.3.0" />
        <PackageReference Include="Tewr.Blazor.FileReader" Version="2.0.0.20200" />
    </ItemGroup>

    <ItemGroup>
        <ProjectReference Include="..\DataAccess\DataAccess.csproj" />
        <ProjectReference Include="..\UI\UI.csproj" />
        <ProjectReference Include="..\API\API.csproj" />
        <ProjectReference Include="..\Model\Model.csproj" />
    </ItemGroup>
</Project>

对解决这个问题有什么建议吗?

【问题讨论】:

  • "有什么建议吗?" - 是的。不要将其他项目添加到客户端应用程序中。
  • 求更详细的答案,问更详细的问题。哪些项目,他们有什么依赖关系,等等。

标签: blazor


【解决方案1】:

“我有一个服务器项目”有点不清楚,因为我们只能看到&lt;Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"&gt;。我假设您不想将 Blazor 服务器应用程序转换为 WebAssembly 应用程序?

项目类型现在是 WebAssembly,但您包括&lt;PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" /&gt;

您不能直接从浏览器应用程序访问数据库。它不受支持且不安全(所有客户端都可以访问连接字符串)。

此项目需要拆分为客户端和服务器(API)部分。

您最好的课程是从完整的 Blazor Wasm + Asp.Net Hosted + Individual Accounts 模板创建一个项目(在临时文件夹中)。它将为您提供完整的参考信息。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    相关资源
    最近更新 更多