要使用指定的绝对路径运行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监视帮助始终指定
-p
或-project
参数:Microsoft DotNet File Watcher 2.1.1-rtm-30846
用法:dotnet监视[选项] [[-] ...]
选项:-?| -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-watch将使用第一个无法识别的 参数作为传递给孩子的所有参数的开头 dotnet进程。
例如:dotnet watch---verbose run
即使dotnet-watch支持'--verbose'选项,使用 “-”的含义是应将“ --verbose”视为 dotnet运行的参数。
示例:dotnet watch运行dotnet watch test
那怎么了?为什么dotnet watch run
不能使用项目的绝对路径而dotnet run
可以使用项目的绝对路径?
答案 0 :(得分:3)
您可以通过在-p
命令而不是watch
命令上指定run
选项来解决此问题。在您的情况下,应该是:
dotnet watch -p C:\foo\bar\Project\Project.csproj run
答案 1 :(得分:1)
我不确定100%,但是dotnet watch正在寻找当前目录中的文件更改。因此,如果您使用绝对路径,则必须知道应该在哪里寻找更改。当然,这种实现是可能的,但是我只是认为在实现watch
命令时没有人考虑过