Asp.net-Core

Visual Studio 2017 csproj 核心文件排除

  • May 19, 2017

我已將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 已包含的項目的元數據值(例如 CopyToPublishDirectory 設置),則必須使用“更新”而不是“包含”。

要了解幕後發生的事情,以下是 Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web 的預設項目設置

<https://github.com/dotnet/sdk/blob/dev15.1.x/src/Tasks/Microsoft.NET.Build.Tasks/build/Microsoft.NET.Sdk.DefaultItems.props#L19-L27>

<https://github.com/aspnet/websdk/blob/rel/vs2017rtw/src/Web/Microsoft.NET.Sdk.Web.ProjectSystem.Targets/netstandard1.0/Microsoft.NET.Sdk.Web.ProjectSystem.props#L25-L40>

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