ASP.NET Core 可否使用未提交源码控制的个性化 launchSettings.json
实现 launchSettings.json 个性化不入库配置的可行方案
目前 launchSettings.json 暂未提供和 appsettings.json User Secrets 完全对等的原生个性化覆盖机制,官方对应能力还处于社区提案阶段,实际开发中可以通过以下几种不干扰团队共享配置的方式,灵活调整调试启动的 launchUrl,同时避免本地配置同步给其他成员:
- 本地配置管理机制
两种适配不同仓库现状的操作思路:- 从零开始调整仓库规则的场景下,可以把团队通用的启动配置整理为模板文件提交到源码仓库,例如命名为
launchSettings.template.json;之后将实际生效的launchSettings.json加入.gitignore忽略列表,每个开发者拉取代码后,将模板文件复制为本地的launchSettings.json,自行调整里面的 launchUrl、端口等个性化参数。可在模板文件中添加注释标注通用的基础配置要求,避免复制修改时改错团队统一的启动参数。 - 如果团队已经把基础版 launchSettings.json 纳入源码跟踪,不想特意调整仓库结构换模板文件,也可以在本地执行
git update-index --skip-worktree Properties/launchSettings.json命令,让git忽略对这个文件的本地修改。你随便改里面的 launchUrl、端口,git 都不会把这些修改标记为待提交内容,自然不会把你的个性化配置推到远程仓库,其他团队成员完全感知不到你的改动,同时你还能正常拉取仓库里同步的基础配置更新。
- 从零开始调整仓库规则的场景下,可以把团队通用的启动配置整理为模板文件提交到源码仓库,例如命名为
- IDE 本地启动配置分流
Visual Studio、Rider 这类主流IDE 都支持独立于项目 launchSettings.json 的本地启动配置项,这类配置默认存储在用户本地的IDE 实例目录下,不会写入项目目录的配置文件。只需要在IDE的调试启动配置下拉栏中,新建个性化的启动项,在配置中直接覆盖需要调整的 launchUrl、环境变量等参数,调试时选择对应的本地启动项即可,全程不需要修改团队共享的 launchSettings.json 内容。 - 命令行参数直接覆盖
如果是通过 VS Code、命令行执行dotnet run调试的场景,可以直接在启动命令中传入参数覆盖 launchUrl 配置,不需要修改项目内的任何配置文件。示例命令:dotnet run --launch-profile "团队通用启动配置名" --urls "https://localhost:5001/你的调试路径"
这种方式可以根据当前调试的内容临时调整启动URL,配置完全不会在项目目录留下痕迹。
目前社区已经向官方提交了「支持本地化、可被 git 忽略的 launchSettings 配置覆盖文件」的功能提案,机制设计与现有的 User Secrets 保持对齐,随着提案获得的社区支持提升,该能力被官方正式采纳落地的概率也会更高,后续实现后即可获得无侵入的原生个性化配置体验。
内容的提问来源于stack exchange,提问作者Thomas Neuberger
相关产品推荐
相关产品推荐

