项目或解决方案加载时如何自动运行dotnet watch命令?
解决方案打开时自动执行SCSS监听编译命令的实现方法
以下是不同开发场景下的可用方案:
方案1:Visual Studio 原生配置(适合用Visual Studio开发.NET项目)
你可以通过任务绑定的方式实现打开解决方案自动运行命令,不需要手动启动cmd:
- 方法A(无需额外扩展):
- 在项目根目录新建
package.json文件,加入如下配置(仅用于VS任务识别,无需安装Node.js环境也可正常识别):{ "scripts": { "watch-scss": "dotnet watch tool run webcompiler" } } - 打开VS菜单栏「视图」→「其他窗口」→「任务运行器资源管理器」,刷新后就能看到
watch-scss任务 - 右键该任务,依次选择「绑定」→「解决方案打开时」,配置完成后每次打开解决方案就会自动在VS内置终端启动编译任务
- 在项目根目录新建
- 方法B(不引入npm配置):
- 点击VS菜单栏「工具」→「外部工具」→「添加」
- 按如下参数填写:
- 标题:
SCSS监听编译 - 命令:
dotnet.exe - 参数:
watch tool run webcompiler - 初始目录:
$(SolutionDir) - 勾选「使用输出窗口」,点击确定保存
- 标题:
- 安装VS官方扩展「Command Task Runner」,就可以在任务运行器中把这个外部工具绑定到解决方案打开事件
方案2:项目启动配置(多IDE通用)
如果你习惯同时启动项目和监听任务,可以修改启动配置实现一键启动:
- 打开项目
Properties目录下的launchSettings.json文件,新增如下配置节点:{ "profiles": { // 保留你原来的项目启动配置,新增下面的项 "WatchSCSS": { "commandName": "Executable", "executablePath": "dotnet", "commandLineArgs": "watch tool run webcompiler", "workingDirectory": "$(ProjectDir)", "launchBrowser": false } } } - 之后在解决方案属性的「启动项目」页选择「多个启动项目」,把你的主项目和
WatchSCSS都设置为「启动」,启动项目时就会同时运行SCSS监听任务
方案3:VS Code 配置(适合用VS Code开发的场景)
- 在项目根目录新建
.vscode/tasks.json文件,加入如下配置:{ "version": "2.0.0", "tasks": [ { "label": "watch-scss", "type": "shell", "command": "dotnet", "args": ["watch", "tool", "run", "webcompiler"], "runOptions": { "runOn": "folderOpen" }, "presentation": { "reveal": "always", "panel": "shared" } } ] } - 第一次打开项目时会弹出允许自动运行任务的提示,确认后后续每次打开项目文件夹都会自动执行该命令
以上所有方案都不需要单独打开cmd窗口,命令输出会直接展示在IDE的内置终端中,关闭IDE时对应的监听进程也会同步关闭,不会残留后台进程。
内容的提问来源于stack exchange,提问作者mejobloggs
相关产品推荐
相关产品推荐

