从构建asp.net dotnet core 2.0中排除wwwroot \ dist

时间:2017-10-12 23:03:23

标签: asp.net .net-core

我正在尝试使用CLI构建asp.net dotnet核心应用程序,但我想从编译中排除wwwroot\dist\**\*

dist文件夹中,我有静态文件,需要复制但不能编译。我尝试添加ItemGroup,但无法理解。

我也跟着这个document,但有一些我不明白,可能是错的。

这里有si样本配置:

  <ItemGroup>
    <Compile Exclude="wwwroot\dist\**\*" />
  </ItemGroup>

我的一个错误是:

  

错误MSB4232:Target元素之外的项必须有一个   以下操作:包括,更新或删除。

2 个答案:

答案 0 :(得分:2)

应该是这样的:

  <ItemGroup>
    <Compile Remove="wwwroot\dist\**" />
    <Content Remove="wwwroot\dist\**" />
    <EmbeddedResource Remove="wwwroot\dist\**" />
    <None Remove="wwwroot\dist\**" />
  </ItemGroup>

但游戏中可能还有其他东西。以下是&#34;默认&#34; .net core 2 csproj应该看起来像+&#34; dist&#34;文件夹忽略:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="wwwroot\dist\**" />
    <Content Remove="wwwroot\dist\**" />
    <EmbeddedResource Remove="wwwroot\dist\**" />
    <None Remove="wwwroot\dist\**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
  </ItemGroup>

</Project>

如果您希望将文件夹的内容复制到输出并在VS中仍然可见:

  <ItemGroup>
    <Compile Remove="wwwroot\dist\**" />
  </ItemGroup>

答案 1 :(得分:0)

您还可以确保项目永远不会添加到项目中,因此您不必删除它们。如果目录很大,这可能会更高效。要将排除添加到默认的glob模式,您可以将其添加到项目文件中:

<PropertyGroup>
  <DefaultItemExcludes>$(DefaultItemExcludes);wwwroot\dist\**</DefaultItemExcludes>
</PropertyGroup>