Visual studio Visual Studio后期生成不喜欢我的条件
我有一个生成后条件,如下所示:Visual studio Visual Studio后期生成不喜欢我的条件,visual-studio,batch-file,visual-studio-2012,post-build-event,Visual Studio,Batch File,Visual Studio 2012,Post Build Event,我有一个生成后条件,如下所示: if $(ConfigurationName)==Release ( echo Update $(TargetName) to be non conflicting "$(SolutionDir)ILMerge\RummageTypeRenamer.exe" -f XamlGeneratedNamespace.GeneratedInternalTypeHelper -t XamlGeneratedNamespace.GeneratedInterna
if $(ConfigurationName)==Release
(
echo Update $(TargetName) to be non conflicting
"$(SolutionDir)ILMerge\RummageTypeRenamer.exe" -f XamlGeneratedNamespace.GeneratedInternalTypeHelper -t XamlGeneratedNamespace.GeneratedInternalTypeHelper$(TargetName) $(TargetName).dll
del $(TargetName).dll
ren $(TargetName).Runmage.dll $(TargetName).dll
)
如果我把条件和条件都去掉,这就行了。但如果按原样运行,则会出现错误:
该命令的语法不正确
然后打印出整个语句,条件看起来很好:
如果释放==释放
为什么Visual Studio不喜欢我的条件设置?在这里找到了解决方案:
(见此评论:
我发现整个命令需要在一行上,否则您将得到“退出代码255”)
因此,您的后期构建应该如下所示:
if $(ConfigurationName)==Release goto _release
goto _exit
:_release
echo Update $(TargetName) to be non conflicting
"$(SolutionDir)ILMerge\RummageTypeRenamer.exe" -f XamlGeneratedNamespace.GeneratedInternalTypeHelper -t XamlGeneratedNamespace.GeneratedInternalTypeHelper$(TargetName) $(TargetName).dll
del $(TargetName).dll
ren $(TargetName).Runmage.dll $(TargetName).dll
:_exit
试试K&R风格的帕伦:
if $(ConfigurationName)==Release (
echo Update $(TargetName) to be non conflicting
...
)
批处理希望括号与
IF
(+1)位于同一行,用于显示如何在生成后使用rummageTypeRename:)。我知道这超出了主题的范围,但人们仍然可以使用“RummageTypeRenamer post build”搜索字符串进行搜索。为什么仅在发布模式下才需要此程序集?为什么不调试?如果你愿意,我可以问一个单独的问题,并在这里通知你。谢谢。@AndreyK很抱歉,我不记得为什么我需要这个。