此错误消息是什么意思?我该怎么办才能纠正这个问题?

gashingBlyInfo.cs带有代码9009


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

没有正确的解决方案

其他提示

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

由于一个,我正在遇到9009错误 xcopy Visual Studio 2008中的构建事件命令。

命令 "xcopy.exe /Y C:\projectpath\project.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\

请注意,此示例与空间有关。

错误代码9009意味着找不到错误文件。答案中发布的所有基本原因都是弄清原因的好灵感,但是错误本身只是一条不良的道路。

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

用于Visual Studio 2010使用:

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

如@floriankoch在评论中提到的那样,对于2017年的vs,使用:

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

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

最有可能的路径中有空间。

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

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

在WIN 7中将路径变量从环境变量更改后具有相同的变量。

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

当我删除路径环境变量时,我导致了此错误。编辑后,我不小心添加了 Path= 到路径字符串的开头。有了这样的畸形路径变量,我无法在命令行(找不到命令或文件)上运行Xcopy,并且Visual Studio拒绝在构建后步骤运行,并以代码9009的错误为由。

Xcopy通常位于C: Windows System32中。一旦路径环境变量允许Xcopy在DOS提示下解决,Visual Studio就可以很好地构建了我的解决方案。

如果脚本实际上可以做需要做的事情,而只是Visual St.

exit 0

到您的脚本结尾。

检查拼写。我试图打电话给可执行文件,但名字拼写错误,这给了我 exited with code 9009 信息。

就我而言,在调用命令之前,我必须先将“ 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)\" 到系统环境变量 "path"

另一个变体:

今天,我称Win32中的Cron的Python解释器,并取出ExitCode(%errorlevel%)9009,因为Cron使用的系统帐户没有通往Python目录的路径。

当我尝试在我的测试类库中的命令行上使用命令行上的命令时,就会发生问题。当您使用类似的引号时:

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

或者,如果您正在使用控制台:

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

这解决了我的问题。

另外,请确保您项目的“邮政构建事件编辑”窗口中没有线路断开。有时,当Xcopy命令是多行并将其粘贴到VS中时会导致问题。

我在前构建步骤中将“> myfile.txt”添加到行的末尾,然后检查文件是否有实际错误。

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中遇到此错误,请检查输出窗口,看看问题是否是未设置的环境变量。

对我来说,磁盘空间很低,预计无法写出的文件将在稍后出现。提到的其他答案丢失文件(或错误地命名/不正确的逐名文件) - 但根本原因是缺乏磁盘空间。

由于路径中的空格,找不到另一个文件变体。就我的情况而言,在MSBUILD脚本中。我需要使用HTML样式 exec命令中的字符串。

<!-- 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中的输出窗口:

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

enter image description here

我简单地重新启动Visual Studio来修复此问题 - 我刚刚运行 dotnet tool install xxx 在控制台窗口中,VS尚未选择更改的新环境变量和/或路径设置,因此快速重新启动解决了问题。

这是非常基本的,我遇到了这个问题,令人尴尬的简单失败。

应用程序使用命令行参数,我将其删除,然后添加回它们。突然,该项目未能构建。

Visual Studio-> Project属性 - >验证您使用“调试”选项卡(不是'build Events'tab) - >命令行参数

我使用了和邮政/构建的文本区域,这是错误的。

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

“ CMD”不被认为是内部或外部命令,可操作程序或批处理文件。 C:Program Files (x86)MSBuild14.0binMicrosoft.Common.CurrentVersion.targets(1249,5): error MSB3073: The command "cmd /c C:GitReposmainServiceInterfacesDEV.Config prebuild.cmd ServiceInterfaces“由代码9009退出。

路径变量被损坏了太长,而多个重复路径与PostSharp.patterns.diagnostics有关。当我关闭Visual Studio并再次打开它时,问题已解决。

我的解决方案很简单,因为您是否尝试过将其再次关闭?因此,我重新启动了计算机,问题已经消失。

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

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

实际上,我注意到,由于某种原因,温迪尔%环境变量有时会被删除。对我有用的是将Windir环境变量重新设置为C: Windows,RETART VS,仅此而已。这样,您可以防止不得不修改解决方案文件。

至少在Visual Studio Ultimate 2013,版本12.0.30723.00更新3版中,不可能将IF/ELS/ELSE语句与线路断开:

作品:

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

不起作用:

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

另一个原因是:如果您的预建事件引用了另一个项目bin路径,并且在运行MSBuild(但不是Visual Studio)时会看到此错误,那么您必须在 *.sln文件(带有文本编辑器)中手动安排项目事件中您要定位的项目是在活动项目之前构建的。换句话说,MSBUILD使用的顺序是在 *.sln文件中列出项目,而VS使用项目依赖项的知识。当WixProJ之后列出了一个数据库的工具,我就会发生这种情况。

我认为就路径中的俄罗斯符号(所有项目都在用户文件夹中)。当我将解决方案放入另一个文件夹(直接在磁盘上)时,一切都可以。

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

您需要确保在全球安装了咕unt声

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top