C# 命令行:使用特定配置文件名执行ASP.Net核心dll

C# 命令行:使用特定配置文件名执行ASP.Net核心dll,c#,asp.net-core,C#,Asp.net Core,当我使用dotnet WebApplicationLaunchProfile.dll运行ASP.Net核心应用程序时,请帮助我指定配置文件名 我使用这个简短的表单只是为了有可能在VS之外运行这个项目,并检查它是如何工作的 我知道我可以使用dotnet run--launch profile testProfileName,但是它需要.csproj和.cs源文件可用。我希望避免复制源代码文件并使用已编译的程序集。我的流程是: 使用dotnet构建构建 将生成结果(bin\Debug文件夹内容)复

当我使用
dotnet WebApplicationLaunchProfile.dll运行ASP.Net核心应用程序时,请帮助我指定配置文件名

我使用这个简短的表单只是为了有可能在VS之外运行这个项目,并检查它是如何工作的

我知道我可以使用
dotnet run--launch profile testProfileName
,但是它需要
.csproj
.cs
源文件可用。我希望避免复制源代码文件并使用已编译的程序集。我的流程是:

  • 使用
    dotnet构建构建
  • 将生成结果(
    bin\Debug
    文件夹内容)复制到单独的文件夹中
  • 使用
    dotnet WebApplicationLaunchProfile.dll
    表单启动dll以使用正确的配置文件名
然而问题是

使用dotnet run启动应用程序时,将使用第一个带有“commandName”:“Project”的配置文件

使用
dotnetdll
命令执行项目时的规则。很明显,不应该应用它,因为我没有使用
dotnet run
命令

但是,我希望以某种方式指定配置文件名

我已经从VS模板创建了新的ASP.Net核心项目,并更新了
launchSettings.json
文件,如下所示:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
...
  "profiles": {
...
    "WebApplicationLaunchProfile": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "applicationUrl": "https://localhost:4430;http://localhost:8080",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

我已经调整了
profiles:WebApplicationLaunchProfile:applicationUrl
值,并替换了5000和5001端口,如您所见。 项目已上载到网站,仅供快速参考。 但是除了
launchSettings.json
之外,没有任何修改

我可以使用VS或
dotnet run
命令启动应用程序,没有任何问题

但是,在使用
dotnetdll
命令执行应用程序时,我遇到了错误,如下所示:

C:\projects\WebApplicationLaunchProfile\bin\Debug\netcoreapp3.1>dotnet WebApplicationLaunchProfile.dll                                                     
crit: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to start Kestrel.                                                                                                                   
System.IO.IOException: Failed to bind to address http://127.0.0.1:5000: address already in use.  
我的端口5000已被占用,希望改用4430

dotnet WebApplicationLaunchProfile.dll--启动配置文件WebApplicationLaunchProfile
不工作(错误相同)


是否可以使用
dotnetdll
设置配置文件名?

我本以为
dotnetxxx.dll-启动配置文件
会起作用。您是否使用了默认的Program.cs文件?(当我们使用Host.CreateDefaultBuilder(args.ConfigureWebHostDefaults(…)从模板创建项目时生成的一个,这就是配置魔法发生的地方)


否则,您可以尝试为您的进程设置此环境变量:
ASPNETCORE\u url
。它应该被捡起来使用。更多信息请访问github问题页面。例如:
set ASPNETCORE\u URL=https://localhost:4430;http://localhost:8080

ASPNETCORE\u URL可以工作,但没有双引号,如
设置ASPNETCORE\u URL=https://localhost:4430;http://localhost:8080
。然而,使用概要文件名,我不仅可以设置URL,还可以设置环境变量,这样应用概要文件就更好了