被用來產生與惡性的msiexec命令以下:Msiexec的無法運行(與NANT生成命令)
> "<exec program="msiexec"
> timeout="1800000" verbose="true">
> <arg line="/i "${server.msi}"" />
> <arg line="TARGETDIR="${server.target.path}""
> />
> <arg line="INSTALLDIR="${server.target.path}""
> />
> <arg line="ALLUSERS=1" />
> <arg line="/quiet" />
> <arg line="/log "${path::combine(log.path,
> 'Installation.Server.log')}"" />"
</exec>
釷產生的命令是: MSIEXEC(/ I「S:\工作\源頭\ Installation \ Setup \ LastBuild \ WiseSetup Server.msi「TARGETDIR =」C:\ Program Files \ MyProgs \ Server「INSTALLDIR =」C:\ Program Files \ MyProgs \ Server「ALLUSERS = 1;/quiet/log」C:\ Projects \ P3450 \ Environment \ Logs \ Installation.Server.log「)
當/ quiet(或/ qn)被移除時,此命令無法執行,它會成功運行。否則,它會給出錯誤: 外部程序失敗:msiexec(返回碼爲1619)
請注意,「(」和「)」將被移除,並且/ quiet會在那裏運行成功!
從cmd窗口運行以下命令並查看errorlevel是否確實爲0 msiexec/i「S:\ Work \ Sources \ Installation \ Setup \ LastBuild \ WiseSetup Server.msi」TARGETDIR =「C:\ Program Files \ MyProgs \ 「C:\ Projects \ P3450 \ Environment \ Logs \ Installation.Server.log」 echo%errorlevel% 如果出現錯誤,請安裝服務器「INSTALLDIR =」C:\ Program Files \ MyProgs \ Server「ALLUSERS = 1/quiet /級別爲0,然後用硬編碼的參數從nant中刪除相同的命令,它也必須工作。然後開始用變量替換參數並在每次更改後運行nant。 – Moisei 2010-08-08 09:38:55