2

Windows 7で実行されているVS2010のビルド後のイベントで、ファイルをターゲットディレクトリにコピーして常に上書きする最良の方法は何ですか.

現時点で私が使用している

robocopy $(SolutionDir) $(TargetDir) "Morning Report Template.xlsm"

また、Xcopy (/Y を使用) や単純なコピーを使用してみました。しかし、私はまだそれを適切に機能させていません。「コマンド "robocopy C:\Working\Projects\SAFEXQueryForm\ C:\Working\Projects\SAFEXQueryForm\SAFEXQueryForm\bin\Release\ "Morning Report Template.xlsm"" exited with code 1.」のようなビルド エラーが発生します。そうしないと、コピーされません。

ビルドエラーなしで毎回コピーして上書きする必要があり、Robocopyではできないことがわかっているファイル名を変更したいと思います。

私は何を間違っていますか?そして、これを行う最善の方法は何ですか?

4

2 に答える 2

6

編集 2015/11/23

この回答は、より良い方法を提供します: https://stackoverflow.com/a/4596552/1011724。ファイルをプロジェクトに追加してから、ファイルの「出力ディレクトリにコピー」プロパティを変更できます。


元の答え

元の構文の何が問題だったのか、または VSRobocopyの成功終了コードが 1 であることを VS に納得させる方法はまだわかりませんが、これは私が現在持っているものであり、機能しているようです。唯一の違いは、ディレクトリ構造を変更することですが、それは問題ではありません(残念ながら、暫定的に他の変更を行ったかどうかはわかりません。これはかなり前のことです)

xcopy "$(SolutionDir)\Additional Files\Morning Report Template.xlsm" "$(TargetDir)" /Y

また、Run post build event ドロップダウンをに設定していますOn successful build

于 2013-02-27T13:08:55.223 に答える
1

これを実現するには、カスタム ビルド アクションを使用する必要があります。詳細についてはhttp://msdn.microsoft.com/en-US/library/hefydhhy(v=vs.80).aspxを参照してください。

入力ファイルをプロジェクトに追加しました。次に、ファイルを選択し、プロパティ ページを表示します (右クリック -> プロパティ)。一般ページで、「アイテム タイプ」が「カスタム ビルド ツール」であることを確認します。

プロパティ ダイアログを閉じて再度開く必要がある場合がありますが、[アイテム タイプ] を [カスタム ビルド ツール] に変更すると、プロパティ ダイアログに [カスタム ビルド ツール] ページが表示されます。その後、コマンドラインに入力できます。「出力」セクションに、カスタム ビルド ステップが生成するファイルの名前を必ず入力してください。

次に、入力ファイルの日付が出力ファイルよりも大きいことがわかったときに、プロジェクトがビルドしてカスタム ビルド ステップを実行することがわかります。これは、あなたが達成しようとしているものだと思います。

于 2012-04-13T15:22:10.687 に答える