我有一个 asp.net core 1.1 应用程序。
它的 .csproj 有一个条目
<EnableDefaultContentItems>false</EnableDefaultContentItems>
当我在线搜索此内容时,我发现的只是有关重复内容错误的问题。这里启用(或者更确切地说,未启用)的默认项目是什么?而且,微软是否在我应该知道要查看的地方记录了这一点?
最佳答案
这是新项目格式的一部分,特别是用于 ASP.NET Core 项目的新 Microsoft.NET.Sdk.Web
项目 SDK。
默认情况下,EnableDefaultContentItems
为 set to true
。然后是 SDK 的 MSBuild 属性项目 contains the following :
<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/
中的所有文件、任何web.config
以及所有.cshtml
和.json
文件. - 发布时忽略
Properties/
文件夹 - 防止编译或嵌入这些已发布的内容文件。
因此,如果您正在使用 wwwroot
文件夹并且未更改其名称,那么建议您保留默认值,以避免在项目中手动指定所有这些异常。这些只是常见的默认设置,可让您快速运行项目,而不会妨碍 MSBuild。
当然,仅仅因为这些是默认值,您以后仍然可以为各个路径制定更明确的规则,而不必禁用默认内容项。
关于asp.net-core - <EnableDefaultContentItems> 启用哪些内容项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46983930/