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,还可以设置环境变量,这样应用概要文件就更好了