Visual Studio 2017 csproj 核心文件排除
我已將
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>