我正在尝试使用CLI构建asp.net dotnet核心应用程序,但我想从编译中排除wwwroot\dist\**\*
。
在dist
文件夹中,我有静态文件,需要复制但不能编译。我尝试添加ItemGroup
,但无法理解。
我也跟着这个document,但有一些我不明白,可能是错的。
这里有si样本配置:
<ItemGroup>
<Compile Exclude="wwwroot\dist\**\*" />
</ItemGroup>
我的一个错误是:
错误MSB4232:Target元素之外的项必须有一个 以下操作:包括,更新或删除。
答案 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>