次のようなものはありますか?
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です。
必要な数の条件ステートメントを含めることができます。それらを新しい行で区切るだけで、他を失うことになります。
だから変更
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ステートメントと同じ行に置き、閉じ括弧「)」をブロックの最後のコマンドと同じ行。
ビルド後のロジックが複雑になった場合は、外部ファイルに移動することをお勧めします。たとえば、次のビルド後のイベント:
CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName)
$(ConfigurationName)をパラメーターとして渡して、プロジェクトディレクトリでバッチファイルPostBuild.cmdを実行します。 $(TargetPath)などの他のパラメーターを渡すこともできます。
その後、複数のifステートメントを含め、必要なものを実装できます。さらに重要なのは、Visual Studioビルドを実行せずにデバッグすることです。