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

AssemblyInfo.cs退出,代码为9009


这个问题可能是在Visual Studio中的. net解决方案的构建后步骤中发生的。


另一个变体:

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


您是否尝试给出在构建前或构建后事件命令中运行的命令的完整路径?

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

命令“xcopy.exe /Y C:\projectpath\project. exe”config C:\compilepath\"退出代码为9009。

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

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

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

而不仅仅是:

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

如果我没有完整的路径,它会在重新启动后运行一段时间,然后停止。

另外,正如本文评论中提到的,如果全路径中有空格,则需要在命令周围加上引号。如。

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

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


很可能在最终路径上有空间。

您可以通过引用路径来解决这个问题,从而允许使用空格。例如:

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

如果脚本确实做了它需要做的事情,而Visual Studio只是因为错误而困扰你,你可以添加:

exit 0

到你剧本的结尾。


当我的后构建事件脚本试图运行指定路径中不存在的批处理文件时,我有错误9009。


另外,确保在项目的构建后事件编辑窗口中没有换行符。有时,当xcopy命令是多行时,从web上复制它并粘贴到VS中会导致问题。


当您缺少使用Microsoft Visual Studio x86工具的一些环境设置时,就会发生这种情况。 因此,尝试在构建后的步骤中添加作为第一个命令:

使用Visual Studio 2010:

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

正如@FlorianKoch在评论中提到的,对于VS 2017的使用:

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

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


检查拼写。我试图调用一个可执行文件,但有名称拼写错误,它给了我退出与代码9009消息。


在Win 7的环境变量中改变PATH变量后,有相同的变量。更改回默认值有帮助。


在我的情况下,在调用命令之前,我必须先“CD”(更改目录)到适当的目录,因为我调用的可执行文件在我的项目目录中。

例子:

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

在我的案例中,问题发生在我试图在命令行上为测试类库中的Post-build事件使用命令时。当你像这样使用引号时:

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

或者如果你使用控制台:

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

这为我解决了问题。


我在预构建步骤的末尾添加了“> myFile.txt”,然后检查文件的实际错误。


我在编校Path环境变量时导致了此错误。编辑后,我不小心将Path=添加到路径字符串的开头。使用这样一个格式不正确的路径变量,我无法在命令行上运行XCopy(没有找到命令或文件),Visual Studio拒绝运行构建后步骤,并引用代码9009的错误。

XCopy通常位于c:\ windows \ system32。一旦Path环境变量允许XCopy在DOS提示符下得到解析,Visual Studio就很好地构建了我的解决方案。


错误代码9009表示没有找到错误文件。这里的答案中列出的所有潜在原因都是找出原因的好灵感,但错误本身只是意味着错误的路径。


对我来说,磁盘空间很低,无法写入的文件预计以后会出现。其他答案提到了丢失的文件(或命名错误/不恰当地引用了文件名称)——但根本原因是磁盘空间不足。


实际上,我注意到由于某些原因,%windir%环境变量有时会被擦除。对我有用的是重新设置windir环境变量为c:\windows,重新启动VS,就是这样。这样可以避免修改解决方案文件。


我的错误是

命令“iscc /DConfigurationName=Debug”C:\Projects\Blahblahblah\setup。Iss“”退出,代码为9009。

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

我通过添加“;C:\Program Files\Inno Setup 5 (x86)\”到系统环境变量“path”来修复它


这是非常基本的,我遇到过这样的问题,而且是令人尴尬的简单失败。

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

Visual Studio ->项目属性->验证您使用的是“调试”选项卡(而不是“生成事件”选项卡)->命令行参数

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


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

工作原理:

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

不工作:

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

Yet another reason: If your pre-build event references another projects bin path and you see this error when running msbuild, but not Visual Studio, then you have to manually arrange the projects in the *.sln file (with a text editor) so that the project you are targeting in the event is built before the event's project. In other words, msbuild uses the order that projects are listed in the *.sln file whereas VS uses knowledge of project dependencies. I had this happen when a tool that creates a database to be included in a wixproj was listed after the wixproj.


我认为在我的情况下,路径中有俄罗斯符号(所有项目都在用户文件夹中)。当我把溶液放在另一个文件夹(直接在磁盘上)时,一切都变得正常了。


对我来说,它发生在一个大型解决方案(~80个项目)中从一个PostSharp版本升级到下一个版本的nuget包之后。 我在预构建事件中有命令的项目有编译器错误。

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

PATH变量已损坏,变得太长,与PostSharp.Patterns.Diagnostics相关的多个重复路径。 当我关闭Visual Studio并再次打开它时,问题就解决了。


由于路径中有空格,还没有找到文件的另一个变体。在我的情况下,在msbuild脚本。我需要在exec命令中使用HTML样式的&ampquot字符串。

<!-- 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" />

我的解决办法很简单:你试过关机再开机吗?于是我重新启动电脑,问题就解决了。


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

在Visual Studio中打开输出窗口:

Ctrl + Alt + O 查看>输出


我的解决方案是创建文件的副本,并在构建任务中添加一个步骤,将我的文件复制到原始文件之上。


在遇到覆盖情况时,我还遇到了这个9009问题。

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


您需要确保已全局安装了grunt


Tfa的回答被否决了,但实际上会导致这个问题。 多亏了hanzolo,我在输出窗口中找到了以下内容:

3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.

在运行npm install -g gulp后,我不再得到这个错误。如果在Visual Studio中出现此错误,请检查输出窗口并查看问题是否是未设置的环境变量。


当我将App.config的属性更改为始终复制时,它发生在我身上

通过撤销我所有的编辑来修复它,然后构建以确保它工作

最后重置它,总是复制和构建它工作


我通过简单地重新启动Visual Studio来解决这个问题——我刚刚在控制台窗口中运行了dotnet工具安装xxx, VS还没有选择新的环境变量和/或路径设置,所以快速重新启动解决了这个问题。


和一个同事发生过。如果开发环境是windows, visual studio项目在C: drive..确保visual studio是在管理员权限下运行的。 只需右键单击并“以管理员身份运行”。您也可以进入visual studio项目的属性-> Advance ->,并启用“以管理员身份运行”。


我有同样的错误导致我的后构建脚本,我试图在命令提示符中逐行运行脚本。最后我发现根本原因是我没有填充.nuspec文件中缺失的信息,即将$和$之间的所有变量替换为实际值,例如将$author$替换为我的名字


仔细检查Output选项卡。

这应该能揭示问题的原因。

(例如,在我的例子中,它与注释有关:'#'不能被识别为内部或外部命令,可操作的程序或批处理文件。)


当找不到signtool.exe本身时,我实际上得到了这个错误消息。为了解决这个问题,我将文件夹路径添加到path环境变量中,并重新启动Visual Studio。


我也有类似的问题,我收到了:

命令 ”“C: \ <用户> \用户下载\ XmlDoc2CmdletDoc.0.3.0 \建立. . \ \ sandbox-attacksurface-analysis-tools-c02ed8ba04324e54a0a188ab9877ee6aa372dfac \包工具” C:\Users<user>\Downloads\sandbox-attack - surface-analysis-tools-c02ed8ba04324e54a0a188ab9877ee6aa372dfac\bin\Debug\NtObjectManager.dll" 用代码9009退出。

我当到项目属性>构建和检查XML文档文件:

在那之后,我重建了这个项目,但它消失了。奇怪的是,在我再次选中复选框并重新构建它之后,错误没有返回。 重影故障. .