问题
example on command line that i use to exclude Admin
path with -x
C:\Users\Test>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /Application.Web -p D:\Application.Web -x /Application.Web/Admin
after run this result is fine. But when i translate to csproj
scripts.
from lib https://msdn.microsoft.com/en-us/library/ms164291.aspx
It does not parameter to exclude path from precompilation.
Currently command on csproj file
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="Application.Web" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
<Target Name="AfterBuild">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
回答1:
You have to call the aspnet_compiler.exe
directly as per this blogpost https://matthewrwilton.wordpress.com/2017/03/12/excluding-node_modules-folder-from-asp-net-compilation/
because the AspNetCompiler
msbuild task doesn't have a property for exclusions.
Good thing is that you can call it with multiple exclusions, like so:
<PropertyGroup>
<exclusion1>some/path</exclusion1>
<exclusion2>another/path</exclusion2>
</PropertyGroup>
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<Exec Command="$(MSBuildFrameworkToolsPath)aspnet_compiler.exe -v temp -p $(WebProjectOutputDir) -x $(exclusion1) -x $(exclusion2)"/>
</Target>
Just remember to use the -x parameter once per exclusion.
来源:https://stackoverflow.com/questions/39262806/how-to-exclude-path-from-precompilation-for-aspnetcompiler-in-csproj