3

Delphi 2007 プロジェクトのビルド後のイベントから 2 つの cmd ファイルを実行しようとしています。

ビルド イベントは次のように構成されます。

..\..\buildtools\postbuild.cmd $(OUTPUTDIR)$(OUTPUTNAME)
..\copydlls.cmd $(OUTPUTDIR)

最初のものは正常に動作しますが、2 番目のものはまったく呼び出されないようです。

次のように順序を変更すると:

..\copydlls.cmd $(OUTPUTDIR)
..\..\buildtools\postbuild.cmd $(OUTPUTDIR)$(OUTPUTNAME)

繰り返しますが、最初のものだけが実行されます。

これは Delphi 2007 の既知の制限/バグですか、それともここで何か間違ったことをしていますか? (これは過去に機能していたと断言できました。)

編集:回避策を見つけました:

%comspec% /c ..\..\buildtools\postbuild.cmd $(OUTPUTDIR)$(OUTPUTNAME)
%comspec% /c ..\copydlls.cmd $(OUTPUTDIR)

これは期待どおりに機能します。まだ奇妙です。

EDIT2:別のオプションがあります.StackOverflowのこの回答で見つけました:

call ..\..\buildtools\postbuild.cmd $(OUTPUTDIR)$(OUTPUTNAME)
call ..\copydlls.cmd $(OUTPUTDIR)

私は(試していなくても)、ビルドイベントがcmdファイルであり、上記で引用した過去の経験がcmdファイルではなく実行可能ファイルを呼び出した場合にのみ問題になると思います。

4

2 に答える 2

3

私がEDIT2で追加した回避策が使用されるべきものだと思うので、これを自分で回答として追加しています:

cmdファイル(おそらくbatファイルも)を呼び出すときは、その前に「呼び出し」を追加する必要があります。

call ..\..\buildtools\postbuild.cmd $(OUTPUTDIR)$(OUTPUTNAME)
call ..\copydlls.cmd $(OUTPUTDIR)
于 2013-12-18T15:32:53.470 に答える