dotnet watch run命令中的取消路径无效

Lan*_*eyo 3 c# .net-core asp.net-core

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

dotnet run -p C:\foo\bar\Project\Project.csproj
Run Code Online (Sandbox Code Playgroud)

但是似乎与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.
Run Code Online (Sandbox Code Playgroud)

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

无论如何,Dotnet监视帮助指定-p-project参数:

Microsoft DotNet文件监视程序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进程的参数的开头。它的使用是可选的。当不使用特殊选项“-”时,dotnet-watch将使用第一个无法识别的参数作为传递到子dotnet进程的所有参数的开头。

例如:dotnet watch---verbose run

即使dotnet-watch支持'--verbose'选项,使用'-'仍应将'--verbose'视为dotnet-run的参数。

示例:dotnet watch运行dotnet watch测试

那怎么了 为什么dotnet watch runwhile 不能使用项目的绝对路径dotnet run

Kir*_*kin 6

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

dotnet watch -p C:\foo\bar\Project\Project.csproj run
Run Code Online (Sandbox Code Playgroud)

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

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