Jenkins MSBuild Process无法访问该文件

时间:2018-04-06 09:35:30

标签: jenkins msbuild visual-studio-2017

在我的Jenkins构建工作流程中,我使用MSBuild构建项目,然后运行发布配置文件来部署文件。下面的常规设置:

  

使用MSBuild构建Visual Studo项目或解决方案

     

MSBuild版本:

     

MSBuild VS2017

     

MSBuild构建文件:

     

ProjectName.csproj

     

命令行参数:

     

/ P:DeployOnBuild = True

     

/ P:PublishProfile = profile-name

     

/ P:配置= CONFIG-名称

我遇到的问题是在它正在抛出的发布过程中,“该进程无法访问文件________,因为它正由另一个进程使用。”:

  

C:\ Program Files(x86)\ Microsoft Visual   工作室\ 2017年\编译工具\的MSBuild \微软\ VisualStudio的\ V15.0 \网络\部署\ Microsoft.Web.Publishing.Deploy.FileSystem.targets(96,5):   错误:复制文件   obj \ jenkins-services-cms \ Package \ PackageTmp \ bin \ FileName.dll到   \ server \ bin \ FileName.dll失败。该进程无法访问该文件   '\ server \ bin \ FileName.dll'因为它正被另一个人使用   处理。 [d:\詹金斯\工作空间\工作区名\ ProjectName.csproj]

在Jenkins中手动调度另一个构建通常可以解决构建错误。有没有办法在发布过程中应用权限以避免此问题?

1 个答案:

答案 0 :(得分:1)

  

Jenkins MSBuild Process无法访问该文件

根据错误消息“进程无法访问文件'\ server \ bin \ FileName.dll',因为它正由另一个进程使用。”。您似乎没有对文件夹server的写入权限。

您可以尝试通过该文件夹上的.wpp.targets文件设置写入权限,有关详细信息,请参阅文档:Setting Folder Permissions on Web Publish

如果上面没有帮助,请尝试使用Process Explorer找出该文件/文件夹上的内容,并确保关闭所有Visual Studio实例,并且可以尝试终止该句柄。