【问题标题】:What does <None Remove="..." /> mean in csproj?<None Remove="..." /> 在 csproj 中是什么意思?
【发布时间】:2018-04-11 20:45:20
【问题描述】:

我正在使用 dotnet core csproj,并且添加了一个新文件。由于约定优于配置,它最初根本不会添加到 csproj 中。但是,一旦我将其 Build Action 从 None 更改为 Embedded 资源,两个条目就会写入 csproj 文件:

<None Remove="MyFile.sql" />

<EmbeddedResource Include="MyFile.sql" />

第一个条目是什么意思?这对我来说似乎是多余的。

【问题讨论】:

    标签: .net-core csproj


    【解决方案1】:

    sdk 风格的项目有一些自动包含。

    默认情况下,sdk 在项目内容之前添加(包含)类似&lt;None Include="**/*"&gt;(简化)的内容。但是您不希望您的文件位于“None”集中,而是位于“EmbeddedResource”集中。

    MSBuild 对多个项目组中的文件没有任何问题,但它应该只在一个项目组中,因此 IDE 不会混淆(并且仅在显示正确的构建操作后才显示文件)。

    所以这两个语句的意思是“将其从 None 集合(项目)中删除并将其添加到 EmbeddedResource 集合(项目)”。

    【讨论】:

    • 我在我的 csproj - &lt;None Remove="testJson\**\*.json" /&gt; 中看到有或没有删除没有区别,我应该看到什么?我使用 Rider 作为我的 IDE。
    • 有趣的事实:更改项目中文件/文件夹的属性(使用 vs2019)显示当您通过 'edit project file' 打开相应的 csproj 文件时 IDE 所做的编辑。在编辑模式下打开时,从无切换到内容或在 csproj 文件中显示一些实时动作。
    • @Martin 那么这里有什么建议?保留两条线?如果删除第一行会发生什么?
    猜你喜欢
    • 2011-01-16
    • 2019-09-11
    • 2018-04-24
    • 2021-01-13
    • 2018-02-27
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    相关资源
    最近更新 更多