3

我有一個後生成的條件,看起來像這樣:的Visual Studio生成後不喜歡我的條件

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 
) 

,如果我脫下條件和括號運行良好。但是,如果我運行它原樣,我得到的錯誤:

The syntax of the command is incorrect.

整個聲明中,然後打印出來,條件看起來不錯:

if Release==Release

爲什麼不Visual Studio的像我的條件?

+0

批次預期括號論文與'IF' – jeb

+0

(+1)相同,用於展示如何在後期構建中使用RummageTypeRenamer :)。我知道這超出了主題的範圍,但人們仍然可以使用「RummageTypeRenamer post-build」搜索字符串搜索此內容。爲什麼你只需要這個程序集用於發佈模式?爲什麼不調試?如果你想我可以問一個單獨的問題,並在這裏通知。謝謝。 –

+0

@AndreyK。 - 抱歉,我不記得爲什麼我需要這個。 – Vaccano

回答

2

發現這裏的解決方案: How to run Visual Studio post-build events for debug build only(見本評論: 我發現,整個命令必須在一行或你會得到「退出,代碼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 
0

嘗試K個& [R風格的括號:

if $(ConfigurationName)==Release (
    echo Update $(TargetName) to be non conflicting 
    ... 
)