【问题标题】:Blazor WASM error referencing Razor Class Library引用 Razor 类库的 Blazor WASM 错误
【发布时间】:2023-03-05 20:33:01
【问题描述】:

我们有一个项目,其中包含 Razor 类库和 WASM 项目。两者都是 .NET 5.0。

我们使用定期发布且运行良好的 WASM 项目测试和演示 RCL。

我们前段时间创建了 RCL 的 nuget 包,并在 Blazor 服务器端项目中成功使用。

现在我试图在一个新的 WASM 项目(也是 .NET 5.0)中引用 RCL,但奇怪的是我收到了这个错误:

  <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>

我有什么遗漏吗?这是 RCL 的 .csproj,我猜是相关的:

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <PackageId>BlazorUI5</PackageId>
    <Version>1.0.39</Version>
    <Authors>CEO Dev Team</Authors>
    <Company>CEO Consultoría</Company>
    <PackageDescription>Blazor UI5 component package</PackageDescription>
    <RepositoryUrl>https://*******</RepositoryUrl>
    <AssemblyVersion>1.0.39.0</AssemblyVersion>
    <FileVersion>1.0.39.0</FileVersion>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Helper\**" />
    <Content Remove="Helper\**" />
    <EmbeddedResource Remove="Helper\**" />
    <None Remove="Helper\**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="5.0.3" />
  </ItemGroup>
  
  <ItemGroup>
    <SupportedPlatform Include="browser" />
  </ItemGroup>

</Project>

我觉得奇怪的是引用在同一个解决方案中工作,但在另一个 WASM 解决方案中使用该包时它不起作用,但它在另一个 Blazor 服务器解决方案中起作用......

关于在这里检查什么有什么建议吗?

谢谢,

乔尔格

【问题讨论】:

  • 我有同样的问题。您找到解决方案了吗?
  • 它目前正在工作,是的,但我不记得我做了什么来解决它。这可能是 VS 的一个错误,通过关闭并重新加载所有项目来修复自己,但老实说我不记得了。
  • 出于某种原因,我也能够随机解决这个问题。也许我会在这里发布答案,以便其他人可以像我一样解决它。

标签: blazor


【解决方案1】:

我想我有同样的问题,但情况略有不同。我有一个 Blazor WASM,我还为我的可重用组件创建了一个 RCL。我将所有组件转移到 RCL,并将 Blazorise lib 下载到该 RCL,然后当我尝试将它引用到我的 Blazor WASM 时,我得到了和你一样的错误。我尝试了不同的在线解决方案,例如重新启动 VS、删除 .vs 文件夹、删除 bin 文件夹等,但似乎没有任何效果。

我是如何解决的

我创建了一个新的 RCL,并立即将其引用到我的 Blazor WASM 应用程序中,以查看它的反应是否相同,但没有错误。我一个一个地转移了我的组件,看看错误会在哪里触发,但没有发现错误。最后,我将 Blazorise 安装到我的 RCL 中,但仍然没有错误。所以基本上我现在有一个工作的 RCL,它基本上与出错的 RCL 相同。唯一的区别是我在传输组件之前先引用了它。我不知道为什么另一个有错误,但这个解决方案可能会帮助其他人。

【讨论】:

    【解决方案2】:

    我也有同样的问题,是微软没有发送正确的异常细节的问题,所以你可以使用发布你的 blazor wasm 应用程序

    dotnet 发布 -v 详细

    所以你会看到正确的例外

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2020-04-09
      • 2022-01-10
      • 2021-04-01
      • 2020-11-14
      相关资源
      最近更新 更多