【问题标题】:Calling MS Build in post-build event giving error after build. (Code 5)在构建后事件中调用 MS Build 在构建后给出错误。 (代码 5)
【发布时间】:2017-10-31 02:31:50
【问题描述】:

我们的网络应用程序有一个构建后事件,该事件会根据正在构建的配置复制 web.config 文件。创建它时我不在,现在团队中没有人从那时起,但看起来我们的 CI/Deploy 服务器需要它,所以删除它不是一种选择。

Error The command "
          "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild" "E:\{path}\UI.IX.csproj" /t:Transform /p:Configuration=Debug.Dev;Platform=AnyCPU
          Xcopy E:\{path}\obj\Debug.Dev\Web.Config E:\{path}\. /F /R /Y
          ("E:\{Path}\IX.PostBuild\bin\Debug.Dev\IX.PostBuild.exe" 'E:\{Path}' 'E:\{path}\' Debug.Dev /S /Y /I /D /V /C)" 

exited with code 5. Please verify that you have sufficient rights to run this command. 

后期构建有 3 个步骤:

  1. 运行 MS Build 以根据配置管理使用正确的配置更新 web.config
  2. 将web.config复制到bin/obj目录下
  3. 运行 PostBuild .exe 文件以将文件从一个项目复制到另一个项目

我们只在新办公室的几台计算机上看到此错误,并且无法重现。

  • Visual Studio 由管理员以管理员身份运行
  • 构建后事件中的所有命令都可以通过命令提示符运行而不会出现任何错误
  • 从后期构建中删除了除 msbuild.exe 命令之外的所有命令 - 仍然出现错误(这是罪魁祸首)

关于如何修复此错误的任何想法?我在 5 台机器上没有出现此错误,但在新办公室的 3 台新机器中,有 2 台出现此错误。

更新

经过进一步检查,我们发现 VS 是在加入域之前由本地管理员安装的。我不确定这是否会导致任何权限问题,但我们正在将运行系统的域帐户上重新安装 VS,以查看是否可以解决任何问题。

【问题讨论】:

  • 这听起来绝对像是网络/机器权限问题 - 当您说“由管理员运行”时,您是指网络、本地还是两者兼而有之?我会先检查用户组和文件夹权限。
  • 本地。右键单击 VS -> 以管理员身份运行。运行它的用户是管理员组。
  • 检查松弛,那里会更容易
  • 故障机器上IX.PostBuild.exe的权限如何?如果那个.exe只有读权限,我们会得到错误“exited with code 5”mannysiddiqui.wordpress.com/2013/05/11/…,顺便说一句,你可以一一查看构建后的命令行来确认哪个命令抛出了错误。
  • 这是导致错误的 MSbuild 行 - 我们找到了原因。没有告知防病毒软件排除代码目录。

标签: msbuild visual-studio-2017


【解决方案1】:

此问题的原因是防病毒软件。它在构建防病毒软件时正在扫描创建的新文件,而在此扫描期间,Visual Studio 无法重写文件。

我们将源代码文件夹添加到 AV 软件中的排除文件夹列表中,它现在可以正确构建。

【讨论】:

    猜你喜欢
    • 2018-11-30
    • 2012-06-25
    • 2017-07-11
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2021-02-09
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多