.NET watch 排除文件不编译
.NET watch exclude files does not compile
我有一个 .NET Blazor 项目,我想在其中使用 dotnet watch。 Blazor 项目在库中,而不是可执行文件中。我 运行 观看可执行项目。在这个项目中,我尝试将 wwwroot 中的所有文件排除在触发重建之外。根据错误消息需要包含,所以我添加了一个空的。这是 msbuild 部分。
<ItemGroup>
<Watch Include="" Exclude="wwwroot\**\*" />
</ItemGroup>
并且在构建项目时出现此错误,好像不支持排除。但是文档说明这是从 dotnet watch.
中排除文件的方法
> dotnet build
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Determining projects to restore...
<proj>.csproj(51,23): error MSB4066: The attribute "Exclude" in element <Watch> is unrecognized.
Build FAILED.
.NET 5.0 在 Watch 方面有什么变化吗?我是否需要在 csproj 中添加其他内容才能完成这项工作?
Watch 包含项不能为空,这是一个 xml 语法错误。
而不是,你应该使用这个:
<ItemGroup>
<Watch Remove="wwwroot\**\*" />
</ItemGroup>
和然后使用dotnet watch build
命令。
默认情况下,Watch 项目不会监控任何 js
文件,css
文件并将仅观看 .cs
、.csproj
、.resx
个文件。
注意:如果要排除.cs
、.resx
文件,不能使用Remove和您应该为文件添加 Watch="false"
以排除它们。检查 this tip.
如果你根据需要扩展了监视范围,基本上,添加你的其他自定义文件,你应该注意以下几点:
============================================= ==================
其实,因为include
不能为空,exclude
应该和include
同时工作。如果你之前已经包含了文件,然后使用include
和exclude
删除一些文件,这是错误的,因为你已经包含了一些文件两次。 exclude
节点作用于当前include
节点。如果上面的 xml 节点仍然有相同的 item include
,则该文件始终存在于该项目下。
Either,当你对watch include
使用大范围文件时,排除一些不需要同时监控的文件。
喜欢:<Watch Include="**\*.js;**\*.css" Exclude="wwwroot\**\*">
删除 wwwroot
文件夹下的 js 和 css 文件。当您第一次将文件扩展到Watch时,您应该同时根据需要删除相关文件。
And 我想你想排除一些js文件(不是默认的监视文件)和其他非默认监控文件,在这种情况下,最好的方法是使用移除.
换句话说,、Remove
和 Include
适用于其他扩展的非默认文件,而 Watch="false"
适用于默认监视文件。
在 MacOS 上,接受的答案:
<ItemGroup>
<Watch Remove="wwwroot\**\*" />
</ItemGroup>
好像不行;但是,我能够使用以下命令忽略 wwwroot
目录:
<ItemGroup>
<Content Update="wwwroot/**/*" Watch="false" />
</ItemGroup>
我有一个 .NET Blazor 项目,我想在其中使用 dotnet watch。 Blazor 项目在库中,而不是可执行文件中。我 运行 观看可执行项目。在这个项目中,我尝试将 wwwroot 中的所有文件排除在触发重建之外。根据错误消息需要包含,所以我添加了一个空的。这是 msbuild 部分。
<ItemGroup>
<Watch Include="" Exclude="wwwroot\**\*" />
</ItemGroup>
并且在构建项目时出现此错误,好像不支持排除。但是文档说明这是从 dotnet watch.
中排除文件的方法> dotnet build
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Determining projects to restore...
<proj>.csproj(51,23): error MSB4066: The attribute "Exclude" in element <Watch> is unrecognized.
Build FAILED.
.NET 5.0 在 Watch 方面有什么变化吗?我是否需要在 csproj 中添加其他内容才能完成这项工作?
Watch 包含项不能为空,这是一个 xml 语法错误。
而不是,你应该使用这个:
<ItemGroup>
<Watch Remove="wwwroot\**\*" />
</ItemGroup>
和然后使用dotnet watch build
命令。
默认情况下,Watch 项目不会监控任何 js
文件,css
文件并将仅观看 .cs
、.csproj
、.resx
个文件。
注意:如果要排除.cs
、.resx
文件,不能使用Remove和您应该为文件添加 Watch="false"
以排除它们。检查 this tip.
如果你根据需要扩展了监视范围,基本上,添加你的其他自定义文件,你应该注意以下几点:
============================================= ==================
其实,因为include
不能为空,exclude
应该和include
同时工作。如果你之前已经包含了文件,然后使用include
和exclude
删除一些文件,这是错误的,因为你已经包含了一些文件两次。 exclude
节点作用于当前include
节点。如果上面的 xml 节点仍然有相同的 item include
,则该文件始终存在于该项目下。
Either,当你对watch include
使用大范围文件时,排除一些不需要同时监控的文件。
喜欢:<Watch Include="**\*.js;**\*.css" Exclude="wwwroot\**\*">
删除 wwwroot
文件夹下的 js 和 css 文件。当您第一次将文件扩展到Watch时,您应该同时根据需要删除相关文件。
And 我想你想排除一些js文件(不是默认的监视文件)和其他非默认监控文件,在这种情况下,最好的方法是使用移除.
换句话说,、Remove
和 Include
适用于其他扩展的非默认文件,而 Watch="false"
适用于默认监视文件。
在 MacOS 上,接受的答案:
<ItemGroup>
<Watch Remove="wwwroot\**\*" />
</ItemGroup>
好像不行;但是,我能够使用以下命令忽略 wwwroot
目录:
<ItemGroup>
<Content Update="wwwroot/**/*" Watch="false" />
</ItemGroup>