20

次のようなものがありますか?

if "Debug"=="$(ConfigurationName)"
(
  goto :nocopy
)
else if "Release"=="$(ConfigurationName)"
(
  del "$(TargetPath).config"
  copy "$(ProjectDir)\App.Release.config" "$(TargetPath).config"
)
else if "ReleaseBeta"=="$(ConfigurationName)"
(
  del "$(TargetPath).config"
  copy "$(ProjectDir)\App.ReleaseBeta.config" "$(TargetPath).config"
)
else if "ReleaseProduction"=="$(ConfigurationName)"
(
  del "$(TargetPath).config"
  copy "$(ProjectDir)\App.ReleaseProduction.config" "$(TargetPath).config"
)
    :nocopy

試してみましたが、うまくいきません。エラー コードは 255 です。

4

2 に答える 2

35

必要な数の条件ステートメントを使用できます。それらを改行で区切り、else を失うだけです。

だから変える

if "Debug"=="$(ConfigurationName)"
(
  goto :nocopy
)
else if...

if "Debug" == "$(ConfigurationName)" (goto :nocopy)
if "Release" ==" $(ConfigurationName)" (
    del "$(TargetPath).config"
    copy "$(ProjectDir)\App.Release.config" "$(TargetPath).config" )
if ...

コンパイルして問題なく実行できます

注: コマンドは DOS バッチ ファイルと同じように行ごとに解釈されるため、左括弧「(」を if ステートメントと同じ行に配置し、右括弧「)」を if ステートメント内に配置することが重要です。ブロックの最後のコマンドと同じ行。

于 2013-09-30T07:56:11.467 に答える