如何在csproj中从AspNetCompiler的预编译中排除路径

时间:2016-09-01 04:41:07

标签: c# asp.net msbuild aspnet-compiler

我在命令行中使用Admin

排除-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

运行后

这个结果很好。但是当我翻译成csproj脚本时。

来自lib https://msdn.microsoft.com/en-us/library/ms164291.aspx

它不是从预编译中排除路径的参数。

目前在csproj文件上执行命令

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <AspNetCompiler VirtualPath="Application.Web" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
<Target Name="AfterBuild">
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

1 个答案:

答案 0 :(得分:1)

您必须根据此博文https://matthewrwilton.wordpress.com/2017/03/12/excluding-node_modules-folder-from-asp-net-compilation/直接致电aspnet_compiler.exe 因为AspNetCompiler msbuild任务没有排除属性。

好的是,您可以使用多个排除项来调用它,例如:

<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>

请记住每次排除时使用-x参数。