2017-07-21 37 views
0

ソリューションをビルドしようとすると次のエラーが発生します。MSBuildがコード1のエラーで終了しました

Error  The command " 

     copy "D:\Code\..\libs\xyz_ext.x64.dll" "D:\Code\bin\" 

     copy "D:\Code\..\libs\xyz.x86.dll" "D:\Code\bin\" 

     " exited with code 1. C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets 4714 
+1

通常、失敗したコマンドをcmdプロンプトにコピーし、手動で実行して失敗した原因を特定します。また、アセンブリへのパスをハードコーディングする代わりに、ビジュアルスタジオ環境変数を使用することを検討することもできます。 –

+0

標準のWindowsエラーコード1は無効な機能です。出力に他に何かありますか? – Alex

+1

これはポストビルドイベントの実際のコマンド(\ .. \を含む)ですか? – nozzleman

答えて

0

MSBuildのは、ちょうどそうであれば、この "ポストビルドイベントからは(..を含む)実際のコマンドでこれです" nozzlemanのコメントとして、コードを1つの誤り

ファーストを終了しましたこのエラーが発生した理由です。これは、ビルドイベントがDOSコマンドと同じ構文に従っているため、DOSはワイルドカード*拡張とシェルによるパス内の\..\をサポートしませんでした。したがって、コマンドラインでフルパスを指定する必要があります。あなたがCodeのすべてのサブフォルダ内のファイルをコピーしたい場合は

はまた、あなたが例えば、ワイルドカード*で、既存のWindowsツール(CMD.EXE)、またはPowerShellを使用して、いくつかの方法が必要になり、PowerShellの:

このコードは、.ps1というファイルにあります。

Get-ChildItem "D:\Code\*\libs" -Recurse -Include xyz_ext.x64.dll | Copy-Item -Destination D:\Code\bin 

そして、ポストビルドイベントによって、このPSスクリプトを実行します。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file D:\Code\Test.ps1 

場合はポストビルドイベントの実際のコマンドでもなく、ちょうど省略表現です。このコマンドのパスを確認する必要があります。エラーログ "code 1 error"によれば、このコマンドが間違っていると指定されています。そして、私はこのコマンドをチェックしている、コピーの構文が正しいので、問題は、パスが間違っていないことです、あなたはそれを再度確認する必要があります。

関連する問題