このエラーメッセージはどういう意味ですか?この問題を修正するにはどうすればよいですか?
AssemblyInfo.csはコード9009で終了しました
この問題は、Visual Studioの.NETソリューションのビルド後の手順の一部として発生している可能性があります。
このエラーメッセージはどういう意味ですか?この問題を修正するにはどうすればよいですか?
AssemblyInfo.csはコード9009で終了しました
この問題は、Visual Studioの.NETソリューションのビルド後の手順の一部として発生している可能性があります。
回答:
ビルド前またはビルド後のイベントコマンドで実行されているコマンドの完全パスを指定しようとしましたか?
xcopy
Visual Studio 2008でビルド後のイベントコマンドが原因で9009エラーが発生しました。
コマンド
"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\
スペースに関するこの例はテストされていないことに注意してください。
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
)で囲んで解決しました。
PATH
環境変数がどういうわけか失われる可能性はありますか?このエラーが時々発生します。私はnpm install
事前構築イベントとしてセットアップしましたが、最初は機能します(したがって、すべてがセットアップされていると思います)が、日中はランダムに機能しなくなり(通常、ソリューション/ブランチを切り替えるときに)、それはもう機能しません。について知っていnpm
ます。VSを再PATH
起動すると「修正」されます。つまり、正しく設定されていますが、VS で起動したようです。VS内から環境変数を表示する方法があった場合、これを確認できました。
%systemroot%\System32\xcopy ...
エラーコード9009は、エラーファイルが見つからないことを意味します。ここで回答に掲載されている根本的な理由はすべて、理由を理解するための良いインスピレーションですが、エラー自体は単に悪いパスを意味します。
これは、Microsoft Visual Studio x86ツールを使用するためのいくつかの環境設定がない場合に発生します。
したがって、ビルド後の手順の最初のコマンドとして追加してみてください。
Visual Studio 2010の場合:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
@FlorianKochがコメントで述べたように、VS 2017の場合:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
他のコマンドの前に配置する必要があります。
Microsoft Visual Studio x86ツールを使用するための環境を設定します。
call "$(DevEnvDir)..\Tools\vsvars32.bat"
か?どこに、どのファイルに行を追加する必要がありますか?ありがとう
Path
環境変数にエントリを追加する必要がありました。詳細については、出力ウィンドウを確認してください。
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
ほとんどの場合、結果のパスにスペースがあります。
パスを引用符で囲んでスペースを許可することで、これを回避できます。例えば:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
Windows 7で環境変数からPATH変数を変更した後も同じ変数を使用していました。デフォルトに戻すと問題が解決しました。
ビルド後のイベントスクリプトが、指定されたパスに存在しないバッチファイルを実行しようとしたときに、エラー9009が発生しました。
スクリプトが実際に必要なことを実行し、Visual Studioがエラーについてバグを修正するだけの場合は、次のように追加します。
exit 0
あなたのスクリプトの最後に。
私の場合、コマンドを呼び出す前に、適切なディレクトリに "CD"(ディレクトリの変更)する必要がありました。これは、呼び出す実行可能ファイルがプロジェクトディレクトリにあったためです。
例:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
別のバリアント:
今日、私はwin32でcronからpythonインタープリターを呼び出し、ExitCode(%ERRORLEVEL%)9009を取得します。これは、cronが使用するシステムアカウントにPythonディレクトリへのパスがないためです。
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でこのエラーが発生した場合は、出力ウィンドウを確認して、問題が未設定の環境変数であるかどうかを確認してください。
また、プロジェクトのビルド後のイベント編集ウィンドウに改行がないことを確認してください。複数行の場合、xcopyコマンドをWebからコピーしてVSに貼り付けると、問題が発生することがあります。
私にとっては、大きなソリューション(〜80プロジェクト)で、1つのPostSharpバージョンから次のバージョンにnugetパッケージをアップグレードした後に起こりました。PreBuildイベントにコマンドがあるプロジェクトのコンパイラエラーがあります。
'cmd'は、内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1249,5):error MSB3073:command "cmd / c C:\ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces "はコード9009で終了しました。
PATH変数が破損し、PostSharp.Patterns.Diagnosticsに関連する複数の繰り返されるパスで長くなりすぎました。Visual Studioを閉じて再度開くと、問題が修正されました。
パスにスペースが含まれているため、ファイルの別の亜種が見つかりません。私の場合、msbuildスクリプトです。HTMLスタイルを使用する必要がありました&quot; execコマンド内の文字列。
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
他の回答と同じですが、私の場合、ファイルが見つからなかったことが原因でした。不足しているファイルを確認するには、出力ウィンドウに移動すると、不足しているファイルがすぐに表示されます。
Visual Studioで出力ウィンドウを開くには:
Visual Studioを再起動するだけでこれを修正しdotnet tool install xxx
ました。コンソールウィンドウで実行したばかりで、VSは変更された新しい環境変数やパス設定をまだ取得していないため、すばやく再起動すると問題が修正されました。
私の解決策は単純です:あなたはそれをオフにしてもう一度オンにしてみましたか?だから私はコンピュータを再起動し、問題はなくなりました。
少なくとも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)
さらに別の理由:ビルド前のイベントが別のプロジェクトのビンパスを参照し、msbuildの実行時にこのエラーが表示されてもVisual Studioは表示されない場合は、プロジェクトを* .slnファイル(テキストエディターを使用)に手動で配置する必要があります。イベントで対象としているプロジェクトが、イベントのプロジェクトの前にビルドされていること。つまり、msbuildはプロジェクトが* .slnファイルにリストされている順序を使用しますが、VSはプロジェクトの依存関係の知識を使用します。これは、wixprojに含まれるデータベースを作成するツールがwixprojの後にリストされたときに発生しました。
私の場合、パスにロシアの記号が含まれていたと思います(すべてのプロジェクトはユーザーフォルダーにありました)。ソリューションを別のフォルダー(直接ディスク上)に置くと、すべてが正常になりました。
私の解決策は、ファイルのコピーを作成し、元のファイルの上にファイルをコピーするステップをビルドタスクに追加することでした。