C# dotnet watch run命令中的对象路径不';行不通
要使用指定的绝对路径运行dotnet core应用程序,我们需要运行以下命令:C# dotnet watch run命令中的对象路径不';行不通,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,要使用指定的绝对路径运行dotnet core应用程序,我们需要运行以下命令: 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 --proje
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 File Watcher 2.1.1-rtm-30846
用法:dotnet watch[选项][-]…]
选项:-?|-h |--帮助显示帮助信息-p |--将项目投影到watch-q |--quiet抑制除警告和错误之外的所有输出-v |--verbose
显示详细输出--列表列出所有发现的 不启动监视程序的文件--版本显示 版本信息 环境变量: 当设置为“1”或“true”时,DOTNET\u使用\u轮询\u文件\u监视程序, dotnet watch将轮询文件系统的更改。这是必需的 对于某些文件系统,如网络共享,Docker已安装 卷和其他虚拟文件系统 DOTNET_WATCH DOTNET WATCH在所有子节点上将此变量设置为“1” 启动进程 备注:特殊选项“---”用于分隔 选项和将传递给 子dotnet进程。它的使用是可选的。什么时候特别选择 未使用“---”,dotnet watch将使用第一个无法识别的 参数作为传递到子级的所有参数的开头 dotnet进程 例如:dotnetwatch--verbose run 尽管“--verbose”是dotnet watch支持的选项,但是 of'--'表示应将'--verbose'视为 dotnet运行的参数 示例:dotnet watch运行dotnet watch测试
那怎么了?为什么project的绝对路径不适用于
dotnet watch run
,而适用于dotnet run
?我不是100%确定,但dotnet watch正在当前目录中查找文件更改。所以,如果使用绝对路径,它必须知道应该在哪里查找更改。当然,这样的实现是可能的,但我认为在实现watch
命令时没有人考虑过这一点您可以通过在watch
命令上指定-p
(或更长的--project
)选项,而不是在run
命令上指定。在您的情况下,这将是:
dotnet watch -p C:\foo\bar\Project\Project.csproj run
文件中有一条说明:
您可以使用dotnetwatch--project
指定要监视的项目。例如,从示例应用程序的根目录运行dotnet watch--project WebApp
run也将运行并观看WebApp项目
说得好。但我认为这是一个bug,因为文档清楚地描述了我们可以指定一个我们想要观看的项目的路径。