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

时间:2017-02-27 16:18:10

标签: .net asp.net-core .net-core visual-studio-2017 dotnet-cli

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

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

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

3 个答案:

答案 0 :(得分:21)

您必须像Update这样使用:

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

答案 1 :(得分:1)

替换您的代码

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

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

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

答案 2 :(得分:0)

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

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

AND

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