Asp.net-Core
<EnableDefaultContentItems> 啟用哪些內容項?
我有一個 asp.net core 1.1 應用程序。
它的 .csproj 有一個條目
<EnableDefaultContentItems>false</EnableDefaultContentItems>當我線上搜尋此內容時,我發現的只是有關重複內容錯誤的問題。這裡啟用(或者更確切地說,未啟用)的預設項目是*什麼?*而且,微軟是否在某個我應該知道的地方記錄了這一點?
這是新項目格式的一部分,特別
Microsoft.NET.Sdk.Web是用於 ASP.NET Core 項目的新項目 SDK。預設情況下,
EnableDefaultContentItems設置為true。然後 SDK 的 MSBuild 屬性項目包含以下內容:<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' "> <!-- Publish everything under wwwroot, all JSON files, all web.config files and all Razor files --> <Content Include="wwwroot/**" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" /> <Content Include="**/web.config" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);wwwroot/**" /> <Content Include="**/*.cshtml" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);wwwroot/**" /> <Content Include="**/*.json" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);wwwroot/**" /> <!-- Set CopyToPublishDirectory to Never for items under AppDesignerFolder ("Properties", by default) to avoid publishing launchSettings.json --> <Content Update="$(AppDesignerFolder)/**" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/> <!-- Remove Content items from other item types (in a way that CPS understands) --> <None Remove="wwwroot/**;**/*.json;**/web.config;**/*.cshtml" /> <Compile Remove="wwwroot/**" /> <EmbeddedResource Remove="wwwroot/**" /> <!-- Keep track of the default content items for later to distinguish them from newly generated content items --> <_ContentIncludedByDefault Include="@(Content)" /> </ItemGroup>所以基本上,
EnableDefaultContentItems使項目自動:
- 發布
wwwroot/, anyweb.config和 all.cshtml和.jsonfiles 中的所有文件。- 忽略
Properties/發佈時的文件夾- 防止那些已發布的內容文件被編譯或嵌入。
因此,如果您正在使用該
wwwroot文件夾並且沒有更改其名稱,那麼建議您只保留預設值,以避免在您的項目中手動指定所有這些異常。這些只是常見的預設設置,可讓您快速執行項目,而不會妨礙您使用 MSBuild。當然,僅僅因為這些是預設值,您以後仍然可以為各個路徑設置更明確的規則,而不必禁用預設內容項。