首页 > 解决方案 > dotnet watch run 命令中的绝对路径不起作用

问题描述

要使用指定的绝对路径运行 dotnet 核心应用程序,我们需要运行以下命令:

dotnet run -p C:\foo\bar\Project\Project.csproj

但它似乎与以下内容不一样dotnet watch run

watch : Could not find a MSBuild project file in 'C:\directory\where\we\execute\command'. Specify which project to use with the --project option.

-project但是,使用而不是运行相同的命令-p并没有帮助......

无论如何, Dotnet watch help 指定-p-project参数:

Microsoft DotNet 文件观察程序 2.1.1-rtm-30846

用法:dotnet watch [选项] [[--] ...]

选项: -?|-h|--help 显示帮助信息
-p|--project 要监视的项目 -q|--quiet 禁止除警告和错误之外的所有输出 -v|--verbose
显示详细输出 --list 列表所有发现的文件而不启动观察者 --version 显示版本信息

环境变量:

DOTNET_USE_POLLING_FILE_WATCHER 当设置为“1”或“true”时,dotnet-watch 将轮询文件系统以进行更改。这对于某些文件系统是必需的,例如网络共享、Docker 挂载的卷和其他虚拟文件系统。

DOTNET_WATCH dotnet-watch 在所有启动的子进程上将此变量设置为“1”。

备注:特殊选项“--”用于分隔将传递给子 dotnet 进程的选项的结尾和参数的开头。它的使用是可选的。当不使用特殊选项“--”时,dotnet-watch 将使用第一个无法识别的参数作为传递给子 dotnet 进程的所有参数的开头。

例如:dotnet watch -- --verbose 运行

尽管 '--verbose' 是 dotnet-watch 支持的选项,但使用 '--' 表示应将 '--verbose' 视为 dotnet-run 的参数。

示例: dotnet watch 运行 dotnet watch 测试

那怎么了?dotnet watch run为什么项目的绝对路径在使用时不起作用dotnet run

标签: c#asp.net-core.net-core

解决方案


您可以通过在命令而不是命令上指定-p(或更长的--project)选项来解决此问题。在你的情况下,那将是:watchrun

dotnet watch -p C:\foo\bar\Project\Project.csproj run

文档中有一条注释涵盖了这一点:

您可以使用dotnet watch --project <PROJECT>来指定要观看的项目。例如,dotnet watch --project WebApp run从示例应用程序的根目录运行也将运行并监视WebApp项目。


推荐阅读