我想为我的 .NET Core 2.2 应用程序生成一个 .exe 并在某个端口(假设为 5432)上启动它。我将
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
添加到我的 .csproj 以生成 exe,并在我的 applicationUrl
中添加自定义 launchSettings.json
:
{
...
"profiles": {
"IIS Express": { ... },
"MyApp": {
...
"applicationUrl": "https://localhost:5432"
}
}
}
当我运行
dotnet run
时,应用程序按预期在端口 5432 上启动,但是当我在 VS 2017 中构建解决方案并运行 exe 时,它总是在 5000 和 5001 上启动。我知道我可以添加 --urls=""
,但我是想知道是否有办法从我的launchSettings.json
获取端口。
我从 PowerShell 运行 .exe,我只使用 Visual Studio 来重建解决方案。
File
launchSettings.json
只能由 Visual Studio 使用,它仅用于开发目的,在登台/生产/非开发人员计算机中运行时,您不应该依赖它。
换句话说,当您从 VS 外部启动应用程序时,它的设计目的不是使用此文件中的端口。
在
Program.cs
中,在您的CreateWebHostBuilder()
方法中,您可以使用
WebHost.CreateDefaultBuilder(args).UseUrls(“http://[IP]:[Port]”);
此端口将在调试和发布配置中使用。
Wickedlizerd 的建议对我有用,谢谢。我正在运行 .exe 文件,因此无法设置网址。所以我只需要稍微改变一下,因为我使用的是.NET 7。我使用了这个:
builder.WebHost.UseUrls(new[] { "http://domainName:5005" });