在 WebAssembly 项目中,我创建了两个 Razor 类库
Software1
和 Software2
,并在主客户端应用程序中添加了对这两个库的引用。
我还将这些添加到我客户的项目文件中:
<ItemGroup>
<BlazorWebAssemblyLazyLoad Include="Software1.dll"></BlazorWebAssemblyLazyLoad>
<BlazorWebAssemblyLazyLoad Include="Software2.dll"></BlazorWebAssemblyLazyLoad>
</ItemGroup>
但是当我构建项目时失败并显示消息:
Error BLAZORSDK1001 Unable to find 'Software1.dll;Software2.dll' to be lazy loaded
later. Confirm that project or package references are included and the reference is used in
the project. OTS.UI.Client C:\Users\..\.nuget\packages\microsoft.net.sdk.webassembly.pack\8.0.0\build
\Microsoft.NET.Sdk.WebAssembly.Browser.targets 372
当我删除
<ItemGroup>
时,重建成功,并且 Software1.dll
和 Software2.dll
位于 bin 文件夹中,但是当 <ItemGroup>
存在时,重建失败并且 bin 文件夹的 .net8 文件夹为空。如何纠正这个问题?
在 .NET 8 中,托管 dll 传递到浏览器的方式发生了变化。提供 .dll 文件会导致某些防病毒软件出现问题。我们将默认扩展名(和内部格式)更改为 .wasm,并且 blazor 延迟加载需要更改文件扩展名。
请在 CSProj 文件中使用这两行。
<ItemGroup>
<BlazorWebAssemblyLazyLoad Include="Software1.wasm"></BlazorWebAssemblyLazyLoad>
<BlazorWebAssemblyLazyLoad Include="Software2.wasm"></BlazorWebAssemblyLazyLoad>
</ItemGroup>
您可以在这里找到链接。 https://github.com/dotnet/runtime/issues/92965