gpt4 book ai didi

c# - 命令行 : execute ASP. 具有特定配置文件名称的 Net Core dll

转载 作者:行者123 更新时间:2023-12-05 06:20:30 26 4
gpt4 key购买 nike

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

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

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

  • 使用 dotnet build 构建
  • 将构建结果(bin\Debug 文件夹内容)复制到单独的文件夹
  • 使用 dotnet WebApplicationLaunchProfile.dll 形式启动 dll 以使用正确的配置文件名称

问题是

When the app is launched with dotnet run, the first profile with "commandName": "Project" is used

规则 from the documentation is not applied如果使用 dotnet dll 命令执行项目。很明显,它不应该被应用,因为我没有使用 dotnet run 命令。

但是我想以某种方式指定配置文件名称。

我从 VS 模板创建了新的 ASP.Net Core 项目并更新了 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 端口,如您所见。项目已上传到 https://github.com/oleksabor/curly-broccoli仅供快速引用。但是除了 launchSettings.json 之外没有任何修改。

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

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

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 --launch-profile WebApplicationLaunchProfile 不起作用(错误相同)

是否可以使用 dotnet dll 设置配置文件名称?

最佳答案

我原以为 dotnet xxx.dll -launch-profile 会起作用。您是否使用了默认的 Program.cs 文件? (当我们使用 Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(...) 从模板创建项目时生成的,这是配置魔法发生的地方)

否则,您可以尝试为您的进程设置此环境变量:ASPNETCORE_URLS。它应该被拾起和使用。更多信息在 github 问题页面 github.com/aspnet/KestrelHttpServer/issues/639 .例如:set ASPNETCORE_URLS=https://localhost:4430;http://localhost:8080

关于c# - 命令行 : execute ASP. 具有特定配置文件名称的 Net Core dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60413875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com