Windows命令行去除文件只读属性

在使用Asp.Net Core以及WebPack自动打包js、css以及图片文件便利的同时,也要忍受由编译带来的各种失败。

之前就遇到过一个问题就是,使用Jenkins自动发布的时候,使用webpack.js执行打包,Asp.Net Core自动生成的wwwroot/dist文件夹里的某些文件具有只读属性,打包需要重写这些文件,从而导致自动编译出错。

解决的办法就是修改.csproj文件,找到PublishRunWebpack节点,然后在执行node .../webpack.js之前,先把wwwroot/dist文件夹里的所有文件去除只读属性

1
attrib wwwroot/dist/* -R /S

其中attrib命令是对文件属性的操作,-R是去除只读属性的意思,/S是遍历所有文件以及子文件夹内的文件的意思。

整个节点的内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
<Exec Command="npm install" />
<Exec Command="node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js --env.prod" />
<Exec Command="attrib wwwroot/dist/* -R /S" />
<Exec Command="node node_modules/webpack/bin/webpack.js --env.prod" />

<!-- Include the newly-built files in the publish output -->
<ItemGroup>
<DistFiles Include="wwwroot\dist\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
avatar

chilihotpot

You Are The JavaScript In My HTML