在 .NET6 Blazor Webassembly 应用程序中使用外部程序集生成错误

Posted

技术标签:

【中文标题】在 .NET6 Blazor Webassembly 应用程序中使用外部程序集生成错误【英文标题】:Build Error with External Assembly in .NET6 Blazor Webassembly App 【发布时间】:2021-09-22 03:54:47 【问题描述】:

我正在尝试使用 Visual Studio 2022(预览版)使用 .Net6 创建 Blazor Webassembly 应用程序。我已经在该项目中引用了外部程序集文件。当我构建项目时,出现以下错误,

在任何搜索到的位置“D:\Office\Testing\BlazorApp1”中都找不到资产“D:\Office\Testing\BlazorApp1\BlazorApp1\bin\Debug\net6.0\wwwroot_framework\ClassLibrary1.dll” \BlazorApp1\bin\Debug\net6.0\wwwroot_framework\ClassLibrary1.dll'和'ClassLibrary1'

screen shot image

有解决办法吗?

此处的项目属性

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

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.0-rc.1.21452.15" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.0-rc.1.21452.15" PrivateAssets="all" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="ClassLibrary1">
      <HintPath>Lib\ClassLibrary1.dll</HintPath>
      <EmbedInteropTypes></EmbedInteropTypes>
    </Reference>
  </ItemGroup>

  <ItemGroup>
    <ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
  </ItemGroup>

</Project>

【问题讨论】:

将问题中的文本作为文本而不是图像。 错误不在发布的代码中。将错误作为文本发布。 但 'Office' 和 EmbedInteropTypes 暗示在浏览器中无法正常工作。 @HenkHolterman,我编辑了这个问题。 “作为文本”只是一般规则。发布的代码看起来不错,错误确实在其他地方。文件会在那里复制吗?等 【参考方案1】:

你只需要改变这个,

<ItemGroup>
   <Reference Include="../Lib/ClassLibrary1">
     <HintPath>Lib\ClassLibrary1.dll</HintPath>
     <EmbedInteropTypes></EmbedInteropTypes>
   </Reference>   
</ItemGroup>

【讨论】:

以上是关于在 .NET6 Blazor Webassembly 应用程序中使用外部程序集生成错误的主要内容,如果未能解决你的问题,请参考以下文章

2022 wasm blazor.webassembly.js 未找到 .net5 到 .net6 升级

我从 .Net5 升级到 .Net6,现在我的令牌存储在双引号中,我无法验证从我的 blazor 服务器应用程序对 API 的调用

ASP.NET Core Blazor编程系列一——综述

使用 OpenID Connect 注销后强制登录并在 Blazor (.Net 6) 上设置寿命 cookie

Blazor .Net 6.0 热重载

升级到 .net 6 时托管的 Blazor WASM 身份验证中断