MSB3073错误代码9009

时间:2012-11-28 10:06:03

标签: c# visual-studio msbuild

我在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

3 个答案:

答案 0 :(得分:9)

在我的情况下,我必须将我的Post-build事件中的$(MSBuildBinPath)\ msbuild.exe更改为“$(MSBuildBinPath)\ msbuild.exe”,因为该路径包含空格。

作为旁注:我只需要在VS 2013中这样做 - VS 2012和2010都可以在没有引号的情况下处理这个问题。

答案 1 :(得分:5)

当一些糟糕的安装程序破坏了系统环境,特别是PATH环境变量时,就会发生这种情况。所以msbuild无法再执行xcopy.exe程序。

通过启动命令提示符并键入PATH来获取基本诊断信息。验证您是否列出了c:\ windows \ system32。然后键入where xcopy.exe并验证您只获得一次命中,即c:\ windows \ system32中的命中。然后键入xcopy /?以验证您是否可以运行xcopy。如果您不知道如何修复它,请在superuser.com上询问

答案 2 :(得分:1)

在Visual Studio解决方案资源管理器中右键单击您的项目,然后选择“属性”以访问项目属性窗口,单击“构建事件”,您将看到两个带有前/后构建步骤的文本框。

  • 检查postbuild步骤中的所有路径是否正确且有效。

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