Visual Studio后构建复制命令错误MSB3073退出代码1

7
所以我有一个C++ Player项目,它有两个其他项目依赖项,这两个项目都有后置构建事件将dll复制到另一个文件夹中。该项目原本能够构建成功,但突然决定不工作了。即使我从SVN进行清洗检查,它仍然不能正常工作,而对于其他开发人员却可以正常工作,至今我还没有找到解决办法。
我已经检查了错误消息中的路径,它们确实存在,目标dll也存在。
每个依赖项目中的后置构建事件:
copy $(TargetPath) $(ProjectDir)..\..\$(Configuration)\plugins\$(ProjectName).dll

出现的错误:

error MSB3073:命令“copy C:\CMDev\CM2\Client\Apps\SSEP\Player\ACRP\CIAP\Debug\CIAP.dll C:\CMDev\CM2\Client\Apps\SSEP\Player\ACRP\CIAP....\Debug\plugins\CIAP.dll:VCEnd” 退出代码为1。C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets 131 5

当前设置:

  • 运行 Windows 7 Ultimate Service Pack 1
  • Visual Studio Pro v12.0.30723.00 Update 3,使用管理员权限运行。

我尝试过:

  • 将/Y参数用于每个路径并在每个路径周围加上引号,例如 copy /Y "source" "destination"
  • 尝试使用xcopy。
  • 尝试单独清理和重新构建每个依赖项。
  • 卸载 Visual C++ 2010 和 2012、x86 和 x64 Redistributable,并重新安装所有4个版本。

还有什么我可以尝试的吗?


2
听起来你已经尝试了很多方法来调查你的问题。但是,你是否尝试过启用项目日志记录?在VS2012中它对我有用,因此它可能会指出问题所在。 - rrirower
2个回答

3
问题在于VS是如何添加:VCEnd后缀的。某种程度上,microsoft.CppCommon.targets文件被错误地修改了。
  <PropertyGroup>
      <_BuildSuffix>
:VCEnd</_BuildSuffix>
  </PropertyGroup>

1
那么该如何修复那个文件呢? - nt86

1
当双击编译器错误时,我被带到同一个文件(microsoft.CppCommon.target)。然而,这个文件是作为Visual Studio安装的一部分安装的,由于其权限不可写,因此似乎是一个误导。该文件的内容与@user1883004's answer中的内容相同。
通过源代码控制系统,我执行了以下操作:
  1. 关闭Visual Studio
  2. 从项目根目录中删除所有文件,并强制从源代码控制重新下载
  3. 打开Visual Studio,并重新编译。
如果没有源代码控制系统,请尝试以下步骤变化:
  1. 关闭Visual Studio
  2. 手动删除Debug/Release(或任何其他生成的子目录)
  3. 打开Visual Studio,并重新编译。
请注意,对我来说,既不是“清理解决方案”,也不是“重建解决方案”起作用。

这对我有用,但我不得不在Visual Studio中创建一个新项目,并将所有文件复制到新项目中。 - Yvonne Aburrow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接