2

指定したディレクトリにexeとdllを出力するコンソールプログラムがあります。

ビルド後のイベントとして、そのディレクトリ内のすべてを別のディレクトリにコピーしようとしています。

私の xcopy コマンドはコマンド プロンプトから動作しますが、VS2010 では失敗しますか? どうすればいいの?

プロジェクトフォルダーに移動し、コマンドプロンプトで次を実行してテストしています。(VS2010からの出力です)

私のビルド後のイベントで:

xcopy "$(OutDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i

コマンドプロンプトから、動作する以下を実行しています。

xcopy "..\..\..\..\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i

ディレクトリ名については申し訳ありません。

最終結果は、同じファイルを含む 2 つのディレクトリになります。

c:\1\2\3\MyDir\baz\zip
c:\1\2\3\MyDir\foo\bar 

ターゲット パスは、出力ディレクトリからの相対パスです。

ビルドの一部として実行されると、終了コード 4 が返されます

初期化エラーが発生しました。十分なメモリまたはディスク領域がないか、コマンド ラインで無効なドライブ名または無効な構文を入力しました。

どこが間違っていますか?

4

2 に答える 2

2

とった、

ビルド後のイベントで xcopy コマンドを次のように変更しました。

xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i

実行結果は次のとおりです。

xcopy "c:\1\2\3\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i

どちらの VS2010 が好まれたか、ベース パスなしで相対パスを使用することはできないと思います。

于 2013-01-17T02:44:19.777 に答える
1

ソースから宛先への必要なファイルに対して xcopy を実行するバッチ ファイルを呼び出さないのはなぜですか?

call "$(SolutionDir)scripts\copyifnewer.bat"

copyifnewer.bat を使用すると、次のようになります。

IF NOT EXIST <destination> md <destination>
XCOPY /Y <file> <destination>
于 2013-01-17T02:23:48.880 に答える