在csproj中,<none remove =“...”>是什么意思?

时间:2018-04-11 20:45:20

标签: .net-core csproj

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

<None Remove="MyFile.sql" />

<EmbeddedResource Include="MyFile.sql" />

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

1 个答案:

答案 0 :(得分:10)

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

默认情况下,sdk具有<None Include="**/*">(简化)之类的内容,在项目内容之前添加(包含)。但是你不希望你的文件出现在&#34; None&#34;设置,但在&#34; EmbeddedResource&#34;集。

MSBuild对于多个项目组中的文件没有任何问题,但它应该只有一个,这样IDE就不会混淆(只有在显示正确的文件时显示文件)建立行动)。

因此,这两个语句意味着&#34;将其从None集(项目)中删除并将其添加到EmbeddedResource集合(项目)&#34;。