我们可以这样:
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。
答案 0 :(得分:30)
您可以根据需要添加任意数量的条件语句,只需将它们用新行分隔,然后再输入
所以改变
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语句和右括号放在同一行中非常重要“) “与该区块中的最后一个命令在同一行。
答案 1 :(得分:5)
如果您的构建后逻辑变得复杂,我建议将其移至外部文件。例如,以下构建后事件:
CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName)
在项目目录中执行批处理文件PostBuild.cmd,并将$(ConfigurationName)作为参数传递。您还可以传递其他参数,例如$(TargetPath)。
然后,您可以实现任何所需的内容,包括多个if语句,更重要的是,无需运行Visual Studio构建即可对其进行调试。