在单个 WASM 托管项目中运行两个 blazor WASM 应用程序

Bla*_*ace 4 .net-core asp.net-core blazor blazor-client-side asp.net-blazor

我正在使用 WebAssembly (WASM) 托管的 Blazor 应用程序的最新预览版。我已经设置了一个 WASM 托管应用程序并将其配置为使用客户端应用程序文件夹文件内部href的基础:/App1/wwwroot/index.html

<base href="/App1/" />
Run Code Online (Sandbox Code Playgroud)

此时,我的应用程序结构如下所示:

  1. 客户
  2. 服务器
  3. 共享

然后,我将服务器应用程序文件夹中的应用程序映射到路线:

<base href="/App1/" />
Run Code Online (Sandbox Code Playgroud)

通过一些启动设置更改来运行它以映射到/app1效果非常好。接下来,我复制了客户端应用程序并将命名空间更改csprojApp2.

我的应用程序结构现在是:

  1. 应用程序1(客户端应用程序)
  2. 应用程序2(客户端应用程序)
  3. 服务器
  4. 共享

我将基数设置href/App2/,并向服务器启动添加了第二个映射:

app.Map("/app1", app1 =>
{
    app1.UseHttpsRedirection();
    app1.UseBlazorFrameworkFiles();
    app1.UseStaticFiles();
    app1.UsePathBase("/app1");
    app1.UseRouting();

    app1.UseIdentityServer();
    app1.UseAuthentication();
    app1.UseAuthorization();
    app1.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
        endpoints.MapControllers();
        endpoints.MapFallbackToFile("index.html");
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,该项目没有运行。它抱怨静态文件仍然合并在一起。尝试使用以下命令运行服务器项目时出现此编译错误dotnet run

/usr/local/share/dotnet/sdk/3.1.201/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets(191,5): error : Conflicting assets with the same path '/appsettings.Development.json' for content root paths '/Users/user/Developer/WasmHosted/App1/wwwroot/appsettings.Development.json' and '/Users/user/Developer/WasmHosted/App2/wwwroot/appsettings.Development.json'. 
Run Code Online (Sandbox Code Playgroud)

我还尝试添加一个commandLineArgs来更改客户端应用程序中的内容根位置,launchsettings但没有效果:

"commandLineArgs": "--contentroot=/app1",
Run Code Online (Sandbox Code Playgroud)

任何建议都将非常感激,因为我不知道还能尝试什么。

这是dotnet new我用来创建项目的命令

dotnet new blazorwasm -au Individual -ho -n WasmHosted
Run Code Online (Sandbox Code Playgroud)

Rog*_*ier 5

Javier 是 Blazor 项目的团队成员,他在这里开发了一个示例项目: https: //github.com/javiercn/BlazorMultipleApps/blob/master/BlazorMultipleApps