You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为dotnet new自定义项目模板生成随机IIS端口?

自定义Web模板生成随机IIS Express端口的方法

官方模板里的固定端口(比如8080、44300)只是占位符,实际创建项目时,是由dotnet new命令的模板处理逻辑自动检测并替换为随机可用端口的。要让你的自定义模板实现同样效果,只需按以下步骤操作:

1. 在模板的launchSettings.json中保留占位符端口

在你的自定义模板的Properties/launchSettings.json里,像官方模板那样设置固定的占位端口:

"iisExpress": {
  "applicationUrl": "http://localhost:8080",
  //#if (HasHttpsProfile)
  "sslPort": 44300
  //#else
  "sslPort": 0
  //#endif
}

注意://#if这类条件编译指令是模板引擎的语法,确保你的模板项目正确配置了对应的模板参数(比如HasHttpsProfile)。

2. 确保模板项目配置正确

你的自定义模板项目(.template.config/template.json)需要包含Web项目相关的配置,让dotnet new识别它为ASP.NET Core Web模板,这样端口替换逻辑才会生效:

  • 确保tags里包含web、aspnetcore这类标签
  • 确保identity中的group设置为Microsoft.AspNetCore(和官方模板一致)

示例template.json关键配置片段:

{
  "author": "你的名字",
  "name": "自定义Web模板",
  "shortName": "myweb",
  "tags": {
    "language": "C#",
    "type": "project",
    "web": true,
    "aspnetcore": true
  },
  "identity": {
    "group": "Microsoft.AspNetCore",
    "name": "MyCustomWebTemplate"
  }
}

3. 测试模板

将模板安装到本地(dotnet new install .,路径为模板项目根目录),然后用dotnet new myweb创建项目,查看生成的launchSettings.json,就能看到自动替换后的随机端口了。

原理:ASP.NET Core的模板SDK在处理Web模板时,会自动扫描launchSettings.json中的applicationUrl和sslPort,替换为系统中可用的随机端口(HTTP端口范围通常是49152-65535,HTTPS的SSL端口会选可用的443开头或其他合法端口)。

内容的提问来源于stack exchange,提问作者Luke Vo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 13:21:02