MSB3073错误代码9009

9

我有一个在VS 2010上的解决方案,一直没有错误地构建,但突然间构建失败了,并出现以下错误:

**error MSB3073: The command "xcopy "C:\Program Files\Microsoft SDKs\Kinect\Developer Toolkit v1.5.1\Redist\amd64\FaceTrackLib.dll" "C:\Users\HP\Documents\FaceTrackingVisualization\Out\SingleFace\x64\Debug\" /eiycq
xcopy "C:\Program Files\Microsoft SDKs\Kinect\Developer Toolkit v1.5.1\Redist\amd64\FaceTrackData.dll" "C:\Users\HP\Documents\FaceTrackingVisualization\Out\SingleFace\x64\Debug\" /eiycq
:VCEnd" exited with code 9009.  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets   113 6   SingleFace**

我不知道,在网上的解决方案中,人们说要寻找空格或缩进错误,但我不知道在哪里编辑这些更改...错误指向了这些代码行,错误行是粗体的那一行。

Target Name="PostBuildEvent" Condition="'$(PostBuildEventUseInBuild)'!='false'"

 Message Text="Description: %(PostBuildEvent.Message)" Condition="'%(PostBuildEvent.Message)' != '' and '%(PostBuildEvent.Command)' != ''"/

 **Exec Command="%(PostBuildEvent.Command)$(BuildSuffix)" Condition="'%(PostBuildEvent.Command)' != ''"/**

  /Target

相关的,但是针对C++ -- https://dev59.com/M2vXa4cB1Zd3GeqPI2lA - CJBS
3个回答

9

在我的情况下,我不得不将后期构建事件中的$(MSBuildBinPath)\msbuild.exe更改为"$(MSBuildBinPath)\msbuild.exe",因为路径中包含空格。

顺便说一句:只有在VS 2013中,我才需要添加引号来解决这个问题。而在VS 2012和2010中则可以处理此类情况而无需使用引号。


1
我在使用VS 2010时遇到了这个错误,最终发现是预构建事件路径中有一个空格。我通过添加引号来纠正了这个问题。 - kponz

5
当一些糟糕的安装程序破坏了系统环境,特别是PATH环境变量时,就会出现这种情况。因此,msbuild无法执行xcopy.exe程序。
通过启动命令提示符并输入“PATH”来获取基本诊断信息。验证您是否看到c:\windows\system32列出。然后输入“where xcopy.exe”并验证您只获得一个结果,即在c:\windows\system32中。然后输入“xcopy /?”以验证您是否可以运行xcopy。如果您不知道如何修复它,请在superuser.com上询问。

非常感谢您。系统32已从路径系统变量中删除...幸运的是,由于您的指导,问题得到了解决。 - user1859394

1
在Visual Studio解决方案资源管理器中右键单击您的项目,选择“属性”以访问项目属性窗口,单击“生成事件”,您将看到两个文本框,其中包含预/后生成步骤。
  • 检查后生成步骤中的所有路径是否正确和有效。

  • 尝试设置xcopy命令的完整路径c:\windows\system32\xcopy.exe


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