Jenkins发布.Net Core项目去除wwwroot文件夹只读属性

公司内部开发项目的时候,使用Jenkins自动部署,但最近开发了.Net Core的新项目,在使用Jenkins自动部署的时候,出了点问题。

具体原因出在.Net Core使用了NodeJS,npm命令引用了webpack来打包程序,它会操作wwwroot/dist文件夹下的压缩文件,但是Jenkins调用MSBuild来执行生成命令时,每次都会更新wwwroot/dist文件夹内的文件属性成为只读。而npm命令要读取该文件夹里的文件,有写入的操作,然后Jenkins就会报错operation not permitted

针对这种情况,其实只需要在Jenkins调用MSBuild的时候,在执行node webpack.js --env.prod命令前将wwwroot/dist文件夹内的文件去除只读属性即可。

解决方案

修改.csproj文件

1
2
3
4
<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" /> <!--加入这段去处文件只读属性-->
<Exec Command="node node_modules/webpack/bin/wepack.js --env.prod" />
avatar

chilihotpot

You Are The JavaScript In My HTML