在编译期间,“代码9009退出”是什么意思?

这个错误信息是什么意思? 我能做些什么来纠正这个问题?

AssemblyInfo.cs用代码9009退出


该问题可能是Visual Studio中.NET解决scheme的后构build步骤的一部分。

您是否尝试提供在生成前或生成后事件命令中运行的命令的完整path?

由于Visual Studio 2008中的xcopy post-build事件命令,我得到了9009错误。

命令"xcopy.exe /YC:\projectpath\project.config C:\compilepath\"用代码9009退出。

但在我的情况下,这也是间歇性的。 也就是说,错误信息一直持续到计算机重新启动,并在计算机重新启动后消失。 在我还没有发现一些与远程有关的问题之后,它又回来了。

然而,在我的情况下,提供命令的完整path解决了这个问题:

 c:\windows\system32\xcopy.exe /YC:\projectpath\project.config C:\compilepath\ 

而不仅仅是:

 xcopy.exe /YC:\projectpath\project.config C:\compilepath\ 

如果我没有完整path,重启后会运行一段时间,然后停止。

另外正如对这篇文章的评论所提到的, 如果有完整path的空间 ,那么在命令周围需要引号 。 例如

 "C:\The folder with spaces\ABCDEF\xcopy.exe" /YC:\projectpath\project.config C:\compilepath\ 

请注意,这个关于空格的例子没有经过testing。

当您错过使用Microsoft Visual Studio 2010 x86工具的环境设置时,会发生这种情况。
因此,请尝试在构build后步骤中将其添加为第一个命令:

 call "$(DevEnvDir)..\Tools\vsvars32.bat" 

它应该放在任何其他命令之前。
它将设置使用Microsoft Visual Studio 2010 x86工具的环境。

错误代码9009表示找不到错误文件。 所有在这里回答的基本原因都是很好的启发,以便弄清楚为什么,但是错误本身就意味着一条糟糕的道路。

你最有可能在你的合成path中有空间。

你可以通过引用path来解决这个问题,从而允许空间。 例如:

 xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I 

从Win 7中的环境variables中更改PATHvariables后有相同的variables。

我有错误9009当我的后构build事件脚本试图运行指定的path中不存在的batch file。

如果脚本实际上做了它需要做的事情,只是Visual Studio关于错误的问题,你可以添加:

 exit 0 

到你的脚本的末尾。

当我编写我的Path环境variables时,导致了这个错误发生。 编辑完成后,我不小心将Path=添加到pathstring的开头。 有了这样一个格式不正确的pathvariables,我无法在命令行运行XCopy(没有find命令或文件),并且Visual Studio拒绝运行构build后步骤,引用了代码9009的错误。

XCopy通常驻留在C:\ Windows \ System32中。 一旦Path环境variables允许XCopy在DOS提示下得到解决,Visual Studio就很好地构build了我的解决scheme。

检查拼写。 我试图调用一个可执行文件,但名称拼写错误,它给了我exited with code 9009消息。

另一个变体:

今天我从win32中的cron中调用python解释器,并使用ExitCode(%ERRORLEVEL%)9009,因为cron使用的系统帐户没有Python目录的path。

在我的情况下,我不得不把“CD”(改变目录)先调用到正确的目录,因为我调用的可执行文件是在我的项目目录。

例:

 cd "$(SolutionDir)" call "$(SolutionDir)build.bat" 

我确切的错误是

The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.

9009表示找不到文件,但实际上找不到命令的“iscc”部分。

我通过将";C:\Program Files\Inno Setup 5 (x86)\"到系统环境variables"path"

在我的情况下,我试图在我的testing类库中的后生成事件命令行上使用命令发生问题。 当你使用如下所示的引号时:

 "$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)" 

或者如果您使用控制台:

 "$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)" 

这为我解决了这个问题。

另外,请确保项目的后期构build事件编辑窗口中没有换行符。 有时将复制xcopy命令从网上复制并粘贴到VS会导致问题。

我在预生成步骤中将“myFile.txt”添加到行的末尾,然后检查文件中的实际错误。

对我而言,磁盘空间不足,预计不能写入的文件将在稍后出现。 其他答案提到丢失的文件(或错误/不正确的引用名称文件) – 但根本原因是缺乏磁盘空间。

这是非常基本的,我有这个问题,尴尬简单的失败。

应用程序使用命令行参数,我删除它们,然后将它们添加回来。 突然间,这个项目没能build成。

Visual Studio – >项目属性 – >validation您使用“debugging”选项卡(不是“生成事件”选项卡) – >命令行参数

我使用和Post / Pre-build文本区域,这是错误的这种情况。

对于我来说,在一个大的解决scheme(〜80项目)中将nuget包从一个PostSharp版本升级到下一个包之后发生了这种情况。 对于在PreBuild事件中有命令的项目,我有编译器错误。

“cmd”不被识别为内部或外部命令,可操作程序或batch file。 C:\ Program Files文件(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1249,5):错误MSB3073:命令“cmd / c C:\ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces“退出代码9009。

PATHvariables被损坏变得太长与PostSharp.Patterns.Diagnostics相关的多个重复path。 当我closuresVisual Studio并再次打开它时,问题就解决了。

由于path中的空间,还没有find文件的另一个变体。 在我的情况下,在MSBuild脚本。 我需要使用HTML风格& exec命令中的string。

 <!-- Needs quotes example with my Buildscript.msbuild file --> <Exec Command="&quot;$(MSBuildThisFileDirectory)\wix\wixscript.bat&quot; $(VersionNumber) $(VersionNumberShort)" ContinueOnError="false" IgnoreExitCode="false" WorkingDirectory="$(MSBuildProjectDirectory)\wix" /> 

其实我注意到由于某些原因,%windir%环境variables有时会被擦除。 对我来说有效的是将windir环境variables重新设置为c:\ windows,重新启动VS,就是这样。 这样你可以避免修改解决scheme文件。

至less在Visual Studio Ultimate 2013版本12.0.30723.00 Update 3中,不能用换行符分隔if / else语句:

作品:

 if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server) 

不起作用:

 if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server) 

还有一个原因:如果预生成事件引用另一个项目的binpath,并且在运行msbuild而不是Visual Studio时看到这个错误,那么你必须手动安排* .sln文件中的项目(使用文本编辑器)你在事件中定位的项目是在事件的项目之前build立的。 换句话说,msbuild使用项目在* .sln文件中列出的顺序,而VS使用项目依赖关系的知识。 在wixproj之后列出了一个创buildwixproj中包含的数据库的工具时,发生了这种情况。

我认为在我的情况下有path中的俄罗斯符号(所有项目都在用户文件夹中)。 当我把解决scheme放在另一个文件夹(直接在磁盘上),一切都变好了。

我的解决scheme很简单:你试过关掉它吗? 所以我重新启动电脑,问题就没有了。

与其他答案一样,在我的情况下,这是因为缺less的文件。 要知道什么是缺less的文件,你可以去输出窗口,它会告诉你直接丢失了什么。

在Visual Studio中打开输出窗口:

  1. 按Ctrl + Alt + O
  2. 查看>输出

在这里输入图像描述

我的解决scheme是创build一个文件的副本,并添加一个步骤到生成任务将我的文件复制到原来的。

面临覆盖情况时,我也遇到了这个9009问题。

基本上,如果文件已经存在,并且你没有指定/y开关(它会自动覆盖),则从构build运行时可能会发生此错误。

对我来说,它是重新启动Visual Studio。 我已经用代码9009退出了gulp构build。我安装了gulp,但直到重新启动Visual Studio才得到反映。