从命令行运行Blazor托管应用

时间:2020-03-09 11:28:16

标签: c# asp.net .net-core blazor

我有一个Blazor托管的应用程序,带有客户端(webassembly),服务器和共享项目(来自webassembly托管模板)。它可以从Visual Studio正常运行,但是我不知道如何从命令行运行它。我尝试过:

  1. dotnet运行(来自解决方案,根项目和服务器项目目录)
  2. 从服务器项目下的netcoreapp3.1目录运行由Visual Studio构建的exe
  3. 在服务器项目下的netcoreapp3.1目录中运行dll(使用dotnet命令)
  4. 2和3都来自发布目录

所有这些都失败了。有谁知道我将如何从命令行运行它?我想将其推送到Cloud Foundry,但不能不知道如何运行它。

2 个答案:

答案 0 :(得分:0)

在 Windows 命令提示符中以这种方式创建托管 Blazor 应用程序(即具有 Blazor 客户端部分和服务器 Web API 部分的应用程序):

md NameOfYourApp

cd NameOfYourApp

dotnet new blazorwasm --hosted

这会在 NameOfYourApp 下创建一个带有 Client、Server 和 Shared 文件夹的 Blazor 应用。

在客户端或服务器文件夹中使用 dotnet run 将无法正常工作。相反,要从命令行运行您的应用程序,请运行构建时创建的 Server .exe 文件:

dotnet build

cd Server\bin\Debug\net5.0

NameOfYourApp.Server.exe

(如果不切换到.exe所在的目录,你的应用将无法找到appsettings.json文件。)

答案 1 :(得分:0)

在 .NET 5 上,我能够使用 dotnet run

运行我的 Blazor 客户端应用程序
cd C:\path\to\source\server
dotnet run

它应该显示类似 Now listening on https://localhost:5001 的内容,并且您应该可以在浏览器中导航到那里。

如果这不起作用,您可能需要配置您的 SSL 证书。我必须将此 "Key" 部分添加到我的 appsettings.json。请注意,这适用于已发布和发布版本 - 更多信息 here

  "IdentityServer": {
    "Clients": {
      "BlazorApp.Client": {
        "Profile": "IdentityServerSPA"
      }
    },
    "Key": {
        "Type": "Store",
        "StoreName": "My",
        "StoreLocation": "CurrentUser",
        "Name": "CN=localhost"
      }
  },

您可以使用 ls

查看您的证书
ls Cert:\CurrentUser\My\{thumbprint}

只需使用tab补全来找出路径