Msbuild dotnet核心发布:在输出中包含/排除目录

Msbuild dotnet核心发布:在输出中包含/排除目录,msbuild,.net-core,Msbuild,.net Core,给定包含文件夹的aspnet项目: / /sql /WebApp /Client /wwwroot /Views 在project.json上,我使用了 "publishOptions": { "include": [ "..\\sql", "wwwroot", "Views", "web.config" ] } 在dotnet发布后有sql,wwwroot和视图文件夹 在迁移到csproj(

给定包含文件夹的aspnet项目:

/
  /sql
  /WebApp
    /Client
    /wwwroot
    /Views
在project.json上,我使用了

"publishOptions": {
    "include": [
      "..\\sql",
      "wwwroot",
      "Views",
      "web.config"
    ]
  }
dotnet发布后
sql
wwwroot
视图
文件夹

在迁移到csproj(Microsoft.NET.Sdk.Web)之后,我得到了

得到了同样的结果

如何删除
客户端
并保留
sql
的文件夹结构?

更新:

当使用VS 2017>=15.3或.NET CLI版本>=2.0时,有一个新功能可以自动为一些已知的项目类型(包括
内容
)添加
链接
元数据。这可以像这样使用:

<Content Include="..\sql\**" LinkBase="sql" />

但是,这将在SoultionExplorer中显示
sql
文件夹,因此我将其替换为
PostTargets=Publish您还可以在Content Include元素上设置
Visible=“false”
,以从解决方案资源管理器中隐藏文件。
<Content Include="..\sql\**" CopyToPublishDirectory="PreserveNewest" />
<Content Remove="Client\*" CopyToPublishDirectory="Never" />
<Content Include="..\sql\**" LinkBase="sql" />
  <ItemGroup>
    <Content Remove="Client\**" />
    <Content Include="..\sql\**" CopyToPublishDirectory="PreserveNewest" Link="sql\%(RecursiveDir)\%(Filename)%(Extension)" />
  </ItemGroup>
<Content Update="Client\**" CopyToPublishDirectory="Never" />