将 Blazor 组件与项目类型“类库”中的 Sdk Microsoft.Net.Sdk 集成

Integrate Blazor components with Sdk Microsoft.Net.Sdk in the project type "class library"

提问人:Lena 提问时间:9/6/2023 更新时间:9/6/2023 访问量:37

问:

是否可以将 Blazor 组件集成到 Microsoft.Net.Sdk 类库项目中。目标:net7.0。它是Nocommerce框架中的自定义插件。

如果我尝试使用新的 MVC Web 项目 (Microsoft.NET.Sdk.Web),一切都运行良好。

我做的步骤:

  1. .csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <AssemblyName>Nop.Plugin.Test</AssemblyName>
        <RootNamespace>Nop.Plugin.Test</RootNamespace>
        <Company>Test</Company>
        <OutputPath>..\..\..\..\test\src\Presentation\Nop.Web\Plugins\Test.Web</OutputPath>
        <OutDir>$(OutputPath)</OutDir>
        <OutNopWeb>$(OutDir)\..\..</OutNopWeb>
        <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
        <NoWarn>1701;1702;IL2121;NETSDK1138</NoWarn>
    </PropertyGroup>
    
    <ItemGroup>
          <PackageReference Include="Microsoft.AspNetCore.Components" Version="7.0.0" />
          <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="7.0.0" />

    </ItemGroup>
    
    <PropertyGroup>
        <RazorLangVersion>7.0</RazorLangVersion>
    </PropertyGroup>

    <ItemGroup>
        <!-- Include your Blazor components here -->
        <RazorCompile Include="$(OutNopWeb)\Themes\Test\**\*.razor" />
    </ItemGroup>
</Project>
  1. 启动.cs,配置方法:
    public void Configure(IApplicationBuilder app)
    {
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages();
            endpoints.MapBlazorHub();
        });
}
  1. 启动.cs 配置服务方法:
    public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
    {
        services.AddServerSideBlazor();
}
  1. Layout.cshtml
    <base href="~/" />
    <script src="_framework/blazor.server.js"></script>
  1. 索引.cshtml
@(await Html.RenderComponentAsync<Nop.Plugin.Test.Web.Themes.Views.Shared.RazorComponents.Component>(RenderMode.ServerPrerendered, new { Data = " Hello World " }))
asp.net-core-mvc blazor-server-side 类库

评论

0赞 Tiny Wang 9/7/2023
您能否分享您遵循的教程并介绍您现在面临的异常情况?或者你能分享你的最终目标吗?
0赞 Lena 9/7/2023
我没有找到类库项目的正常示例。例如,我为新的 MVC Web 项目尝试了本教程,它运行良好:syncfusion.com/faq/blazor/general/...如果我在我现有的实际项目中尝试,我得到的结果:没有生成剃刀文件,我在 .cshtml 文件中出现错误。我在上面的例子中发现的决定来自聊天 gpt。
0赞 Tiny Wang 9/7/2023
使用的教程是将 Blazor 组件集成到 .NET Core MVC 项目中。你的要求是将 Blazor 组件集成到类库中。也许这份文件就是你想要的?它介绍了如何在 Razor 类库 (RCL) 中跨项目共享组件。
0赞 Lena 9/7/2023
谢谢,我也尝试过,但我们无法更改项目的类型。这是一个大项目,可以集成到另一个项目中。
0赞 Tiny Wang 9/8/2023
感谢您的回复...而微软只在他们的文档中提供这种操作,恐怕我们没有官方行动来实现你的要求......

答: 暂无答案