从 VS 2017 .NET Core 项目的发布目录中排除文件

Excluding File From Publish Directory in VS 2017 .NET Core Project

我在项目的 wwwroot 文件夹中有一个 .gitignore 文件,我试图将其排除在外。以下代码似乎不起作用:

<ItemGroup>
  <Content Include="wwwroot\.gitignore">
    <CopyToPublishDirectory>Never</CopyToPublishDirectory>
  </Content>
</ItemGroup>

当我使用 dotnet publish 命令发布项目时,在输出目录中仍然可以找到 .gitignore 文件。

你必须像这样使用 Update:

<Content Update="wwwroot\.gitignore">
  <CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>

替换您的代码

<Content Include="wwwroot\.gitignore"> with 
<None Include="wwwroot\.gitignore">

我是怎么知道的? 在浏览 .csproj 文件的代码时,我遇到了 visual studio 放在所有发布配置文件文件 (.pubxml) 前面的这个标签 (None)。所以我也尝试了我的文件,它非常有效。

build action 属性 上的 MSDN 文章解释了差异。

不幸的是,投票的答案对我不起作用。我有一个 ASP.NET Core web 项目,我正在使用 Web Deploy 到远程服务器。我试图将 wwwroot 下的整个文件夹排除在部署之外,经过各种试验和不同的组合后,唯一对我有用的是两者的组合:

  1. 从项目中排除文件夹(即右键单击 > 从项目中排除)

A​​ND

  1. 按原样将以下内容添加到我的 .csproj 中,但将 wwwroot\profiles 更改为您要排除的目录。您还必须为要排除的每个文件夹重复整个代码段:
  <ItemGroup>
    <MsDeploySkipRules Include="CustomSkipFolder">
      <ObjectName>dirPath</ObjectName>
      <AbsolutePath>wwwroot\profiles</AbsolutePath>
    </MsDeploySkipRules>
  </ItemGroup>