有一个非常简单的方法:将隐藏属性设置为要排除的文件夹,然后aspnet_compiler
跳过它。
此错误的典型情况是node_modules
创建的文件夹npm install
如果npm install
从脚本运行,或者从命令行运行,则可以运行attrib
命令,运行nmp install
后隐藏文件夹:
attrib +H node_modules
如果npm install
从msbuild
项目运行,则可以添加exec
任务,如下所示:
<PropertyGroup>
<HideFolder>attrib +H "$(PackageJsonFolder)\node_modules"</HideFolder>
</PropertyGroup>
<!-- next line is for debugging, remove it when finished -->
<Warning Text="Hide node_modules command: '$(HideFolder)'"/>
<Exec Command="$(HideFolder)">
至少在我的测试中,命令的退出代码attrib
始终为零,因此检查它以确定命令是否成功运行是没有意义的。
在前面的msbuild
示例中,要隐藏的文件夹是"$(PackageJsonFolder)\node_modules"
因为属性PackageJsonFolder
是文件所在packages.json
文件夹的名称,因此node_modules
将在哪里创建。
对于其他情况,您始终可以指定相对于项目位置的文件夹,如下所示:
<HideFolder>attrib +H "$(MSBuildProjectDirectory)\folder\to\hide"</HideFolder>
并使用前面示例中的相同石灰运行命令。