Visual Studio 2017 csproj核心文件排除
Visual Studio 2017 csproj core file exclusion
我已将 xproj
个核心项目迁移到 csproj
。一切正常,但我仍然遇到发布配置问题。基于文档:
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json-to-csproj 我应该能够在发布期间排除文件。
我在 f
中添加了以下几行
<None Include="*.json" CopyToPublishDirectory="Never" />
<None Include="wwwroot\**\*.map;wwwroot\**\*.less;*.pdb" CopyToPublishDirectory="Never" />
<None Include="wwwroot\**\*" CopyToPublishDirectory="PreserveNewest" />
但仍然 *.map
、.json
和 .less
文件被复制到发布文件夹。我尝试了不同的顺序,但没有成功。
如何从发布中排除某些文件?
简短回答: 请改用以下代码段:
<ItemGroup>
<Content Update="**\*.map;**\*.less;*.json" CopyToPublishDirectory="Never" />
</ItemGroup>
您还可以将这些模式添加到 "DefaultItemExcludes" 属性。
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);**\*.map;**\*.less;*.json</DefaultItemExcludes>
</PropertyGroup>
更长的答案:
Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web 包括默认项目的设置。这些是项目文件夹中应始终编译、嵌入、复制到输出等的项目的 glob。有一些设置可以控制它,但没有很好地记录它们。
如果您想为默认 glob 中已包含的项目更改 metadata value(例如 CopyToPublishDirectory 设置),则必须使用 "Update" 而不是 "Include"。
要查看引擎盖下发生了什么,这里是 Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web
的默认项目设置
我已将 xproj
个核心项目迁移到 csproj
。一切正常,但我仍然遇到发布配置问题。基于文档:
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json-to-csproj 我应该能够在发布期间排除文件。
我在 f
中添加了以下几行<None Include="*.json" CopyToPublishDirectory="Never" />
<None Include="wwwroot\**\*.map;wwwroot\**\*.less;*.pdb" CopyToPublishDirectory="Never" />
<None Include="wwwroot\**\*" CopyToPublishDirectory="PreserveNewest" />
但仍然 *.map
、.json
和 .less
文件被复制到发布文件夹。我尝试了不同的顺序,但没有成功。
如何从发布中排除某些文件?
简短回答: 请改用以下代码段:
<ItemGroup>
<Content Update="**\*.map;**\*.less;*.json" CopyToPublishDirectory="Never" />
</ItemGroup>
您还可以将这些模式添加到 "DefaultItemExcludes" 属性。
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);**\*.map;**\*.less;*.json</DefaultItemExcludes>
</PropertyGroup>
更长的答案:
Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web 包括默认项目的设置。这些是项目文件夹中应始终编译、嵌入、复制到输出等的项目的 glob。有一些设置可以控制它,但没有很好地记录它们。
如果您想为默认 glob 中已包含的项目更改 metadata value(例如 CopyToPublishDirectory 设置),则必须使用 "Update" 而不是 "Include"。
要查看引擎盖下发生了什么,这里是 Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web
的默认项目设置