O que significa "encerrado com código de 9009" significa que durante esta compilação?

StackOverflow https://stackoverflow.com/questions/1351830

  •  20-09-2019
  •  | 
  •  

Pergunta

O que significa essa mensagem de erro?O que eu poderia fazer para corrigir este problema?

AssemblyInfo.cs encerrado com código de 9009


O problema está provavelmente acontecendo como parte de uma etapa pós-compilação em um .NET solution no Visual Studio.

Nenhuma solução correta

Outras dicas

Você tentou dar o caminho completo do comando que está em execução no comando de evento pré ou pós-construção?

Eu estava recebendo o erro 9009 devido a um xcopy Comando de evento pós-construção no Visual Studio 2008.

O comando "xcopy.exe /Y C:\projectpath\project.config C:\compilepath\" saiu do código 9009.

Mas, no meu caso, também foi intermitente. Ou seja, a mensagem de erro persiste até uma reinicialização do computador e desaparece após um reinício do computador. Está de volta após algum problema remotamente relacionado que ainda estou para descobrir.

No entanto, no meu caso, fornecendo ao comando seu caminho completo resolveu o problema:

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

Em vez de apenas:

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

Se eu não tiver o caminho completo, ele corre por um tempo depois de uma reinicialização e depois para.

Também como mencionado nos comentários deste post, Se houver espaços em todo o caminho, então se precisa Aspas em torno do comando. Por exemplo

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

Observe que este exemplo em relação aos espaços não é testado.

Código de erro 9009 significa arquivo de erro não encontrado. Todas as razões subjacentes publicadas nas respostas aqui são uma boa inspiração para descobrir o porquê, mas o erro em si significa simplesmente um caminho ruim.

Isso acontece quando você perde algumas configurações de ambiente para usar as ferramentas do Microsoft Visual Studio X86.
Portanto, tente adicionar como primeiro comando em suas etapas pós-construção:

Para uso do Visual Studio 2010:

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

Como @floriankoch mencionou nos comentários, para uso vs 2017:

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

Deve ser colocado antes de qualquer outro comando.
Ele definirá o ambiente para o uso de ferramentas do Microsoft Visual Studio X86.

Provavelmente você tem espaço no seu caminho resultante.

Você pode contornar isso citando os caminhos, permitindo espaços. Por exemplo:

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

Tinha a mesma variável depois de alterar a variável de CAMINHO a partir de Variáveis Ambientais no Win 7.Mudando de volta para o padrão ajudou.

Eu tive o erro 9009 quando meu script de evento de compilação de post estava tentando executar um arquivo em lote que não existia no caminho especificado.

Fiz esse erro acontecer quando redigitei minha variável de ambiente de caminho. Após a edição, acidentalmente adicionei Path= para o início da string do caminho. Com uma variável de caminho malformada, não consegui executar o XCOPY na linha de comando (nenhum comando ou arquivo não encontrado), e o Visual Studio se recusou a executar a etapa pós-construção, citando erro com o código 9009.

O Xcopy geralmente reside em C: Windows System32. Depois que a variável de ambiente do caminho permitiu que o XCOPY fosse resolvido no prompt do DOS, o Visual Studio construiu bem minha solução.

Se o script realmente fizer o que precisa fazer e é apenas o Visual Studio incomodando você sobre o erro que você pode adicionar:

exit 0

até o final de você script.

Verifique a ortografia. Eu estava tentando chamar um executável, mas tinha o nome com erros de ortografia e isso me deu o exited with code 9009 mensagem.

No meu caso, tive que "CD" (Diretório de Alterar) para o diretório adequado primeiro, antes de ligar para o comando, já que o executável que eu estava ligando estava no meu diretório de projetos.

Exemplo:

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

Meu erro exato foi

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

9009 significa arquivo não encontrado, mas na verdade não conseguiu encontrar a parte "ISCC" do comando.

Eu consertei adicionando ";C:\Program Files\Inno Setup 5 (x86)\" para a variável do ambiente do sistema "path"

Outra variante:

Hoje, chamo o Python Interpreter da CRON no Win32 e tomo o ExitCode (%ErrorLevel%) 9009, porque a conta do sistema usada pelo CRON não tem caminho para o diretório Python.

O problema no meu caso ocorreu quando tentei usar um comando na linha de comando para o evento pós-compra na minha biblioteca da classe de teste. Quando você usa aspas como assim:

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

Ou se você estiver usando o console:

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

Isso corrigiu o problema para mim.

Além disso, verifique se não há quebras de linha na janela de edição de eventos de pós -construção em seu projeto. Às vezes, copiar o comando xcopy da Web quando for multi-linha e colar-o no VS causará um problema.

Eu adicionei "> myfile.txt" ao final da linha na etapa pré-construção e, em seguida, inspecionei o arquivo quanto o erro real.

A resposta do TFA foi desativada, mas na verdade pode causar esse problema. Graças a Hanzolo, olhei na janela de saída e encontrei o seguinte:

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.

Depois de correr npm install -g gulp, Parei de receber esse erro. Se você estiver recebendo esse erro no Visual Studio, verifique a janela de saída e veja se o problema é uma variável de ambiente não definida.

Para mim, o espaço em disco era baixo e os arquivos que não podiam ser escritos deveriam estar presentes posteriormente. Outras respostas mencionaram arquivos ausentes (ou arquivos indignos/de nome incorretamente por nomes)-mas a causa raiz era a falta de espaço em disco.

Mais uma variante do arquivo não encontrada, devido aos espaços no caminho. No meu caso no script msbuild. Eu precisava usar o estilo HTML " Strings dentro do comando 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" />

O mesmo que as outras respostas, no meu caso, foi por causa do arquivo ausente. Para saber qual é o arquivo ausente, você pode ir para a janela de saída e isso mostrará imediatamente o que faltava.

Para abrir a janela de saída no Visual Studio:

  1. Ctrl+Alt+O
  2. Visualização> Saída

enter image description here

Eu reparei isso basta reiniciar o Visual Studio - eu tinha acabado de executar dotnet tool install xxx em uma janela de console e VS ainda não pegou as novas variáveis de ambiente do caminho e/ou configurações que foram alteradas, para um reinício rápido corrigido o problema.

Isso é bastante básico, eu tive esse problema e uma falha simples embaraçosa.

Application Use Argumentos da linha de comando, eu os removi e os adicionei de volta. De repente, o projeto não conseguiu construir.

Visual Studio -> Propriedades do projeto -> Verifique se você usa a guia 'Debug' (não 'Build Events') -> Argumentos da linha de comando

Eu usei a área de texto Post/Post/pré-construção, o que estava errado neste caso.

Para mim, aconteceu após a atualização dos pacotes Nuget de uma versão PostSharp para a próxima em uma grande solução (~ 80 Project). Eu tenho erros de compilador para projetos que possuem comandos em eventos de pré -construção.

'CMD' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote. C: Arquivos de programas (x86) msbuild 14.0 bin microsoft.common.currentversion.targets (1249,5): erro msb3073: o comando "cmd /c c: gitrepos main serviceInterfaces Dev.Config Prebuild.cmd ServiceInterfaces "saiu do código 9009.

A variável de caminho foi corrompida, tornando -se muito longa com vários caminhos repetidos relacionados ao PostSharp.Patterns.Diagnostics. Quando fechei o Visual Studio e o abri novamente, o problema foi corrigido.

Minha solução era simples como: você já tentou desligá -lo e ligar novamente? Então, reiniciei o computador e o problema se foi.

Eu também encontrei isso 9009 problema ao enfrentar uma situação de substituição.

Basicamente, se o arquivo já existe e você não especificou o /y Switch (que substitui automaticamente) Esse erro pode ocorrer quando executado de uma compilação.

Na verdade, notei que, por algum motivo, a variação do % Windir % do ambiente às vezes é apagada. O que funcionou para mim foi refazer a variável de ambiente Windir para C: Windows, reiniciar vs, e é isso. Dessa forma, você impede que a necessidade de modificar os arquivos de solução.

Pelo menos no Visual Studio Ultimate 2013, versão 12.0.30723.00 Atualização 3, não é possível separar uma instrução IF/else com uma quebra de linha:

funciona:

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

não funciona:

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

Outro motivo: se o seu evento pré-construção faz referência a outro caminho de projetos e você ver esse erro ao executar o MSBuild, mas não o Visual Studio, então você deve organizar manualmente os projetos no arquivo *.sln (com um editor de texto) assim que o projeto que você está segmentando no evento é construído antes do projeto do evento. Em outras palavras, o MSBuild usa a ordem de que os projetos estão listados no arquivo *.sln, enquanto vs usa o conhecimento das dependências do projeto. Eu tinha acontecido quando uma ferramenta que cria um banco de dados a ser incluída em um wixproj foi listada após o WixProj.

Eu acho que no meu caso havia símbolos russos no caminho (todos os projetos estavam na pasta do usuário). Quando coloco a solução em outra pasta (diretamente no disco), tudo ficou bem.

Minha solução foi criar uma cópia do arquivo e adicionar uma etapa à tarefa de compilação para copiar meu arquivo sobre o original.

Você precisa ter certeza de que instalou o Grunt globalmente

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top