如何从 dotnet watch run 中排除某些文件类型?

问题描述

希望进行以下设置:

我正在开发 Blazor 应用程序,并使用官方 css 隔离捆绑器。不过,我正在使用 Less,并安装了一个 Less 转换器,它可以在构建时创建所需的 css。

但是,通过 dotnet watch run 运行我的应用程序,它现在经常以无限循环结束。

造成这种情况的原因可能是 dotnet watch run 看到 *.razor.css 文件发生了变化,重新构建,并且循环不断重复。

所以这是我的问题:

如何配置我的 csproj(新的网络标准格式)以将 **\*.razor.css 排除在监视过程之外?它也可以从我的整个 VS 解决方案中消失。

解决方法

对上述两个答案进行了尝试,但都不适合我。我在构建过程中生成了一些文件,这可能是其他 2 个文件对我不起作用的原因。根据上面共享的 Microsoft 文档 (https://docs.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-3.1),要从手表中删除项目,您还可以通过定义对其进行设置。这样做适用于我的场景。

<ItemGroup>
    <Content Remove="wwwroot\dist\**" />
    <Content Include="wwwroot\dist\**" Watch="false" />
</ItemGroup>

我确实必须添加内容删除,否则该项目被声明两次并且构建将失败。

,

请编辑您的 .csproj 文件并向其中添加以下内容

<ItemGroup>  
    <Watch Exclude="**\*.razor.css" />
</ItemGroup>

更多信息在

https://docs.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-3.1

,

来到这里后我遇到了同样的问题,结果是:

<ItemGroup>
    <Watch Remove="wwwroot\**\*" />
</ItemGroup>

对我来说效果很好:)