在我的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中手动调度另一个构建通常可以解决构建错误。有没有办法在发布过程中应用权限以避免此问题?
答案 0 :(得分:1)
Jenkins MSBuild Process无法访问该文件
根据错误消息“进程无法访问文件'\ server \ bin \ FileName.dll',因为它正由另一个进程使用。”。您似乎没有对文件夹server
的写入权限。
您可以尝试通过该文件夹上的.wpp.targets
文件设置写入权限,有关详细信息,请参阅文档:Setting Folder Permissions on Web Publish
如果上面没有帮助,请尝试使用Process Explorer找出该文件/文件夹上的内容,并确保关闭所有Visual Studio实例,并且可以尝试终止该句柄。