【问题标题】:How to exclude certain file types from dotnet watch run?如何从 dotnet watch run 中排除某些文件类型?
【发布时间】:2021-03-30 05:56:43
【问题描述】:

希望进行以下设置:

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

但是,通过dotnet watch run 运行我的应用程序,现在它通常会陷入无限循环。

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

这是我的问题:

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

【问题讨论】:

  • 问题解决了吗?

标签: .net-core msbuild csproj dotnet-tool


【解决方案1】:

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

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

更多信息在

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

【讨论】:

  • 嘿,谢谢,我已经尝试过了 - 但是,我收到以下错误:错误 MSB4232:Target 元素之外的项目必须具有以下操作之一:包括、更新或删除。
【解决方案2】:

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

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

对我来说很好用:)

【讨论】:

    【解决方案3】:

    上面两个答案都玩过,但都不适合我。我在构建过程中生成了一些文件,这可能是其他 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>
    

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

    【讨论】:

    • 谢谢!提示:这可以通过&lt;Content Update="wwwroot\dist\**" Watch="false" /&gt; 更简单地实现。
    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多