Dot-Net-Core

做什麼在csproj中是什麼意思?

  • April 11, 2018

我正在使用 dotnet core csproj,並且添加了一個新文件。由於約定優於配置,它最初根本不會添加到 csproj 中。但是,一旦我將其 Build Action 從 None 更改為 Embedded 資源,就會將兩個條目寫入 csproj 文件:

<None Remove="MyFile.sql" />

<EmbeddedResource Include="MyFile.sql" />

第一個條目是什麼意思?這對我來說似乎是多餘的。

sdk 風格的項目有一些自動包含。

預設情況下,sdk<None Include="**/*">在項目內容之前添加(包含)類似(簡化)的內容。但是您不希望您的文件位於“None”集中,而是位於“EmbeddedResource”集中。

MSBuild 對多個項目組中的文件沒有任何問題,但它應該只在一個項目組中,因此 IDE 不會混淆(並且僅在顯示正確的建構操作後才顯示文件)。

所以這兩個語句的意思是“將其從 None 集合(項目)中刪除並將其添加到 EmbeddedResource 集合(項目)”。

引用自:https://stackoverflow.com/questions/49784191