Dot-Net

如何用 NAnt 修改原始碼?

  • January 28, 2009

在建構解決方案之前,我想用 NAnt 修改 .h 文件中的字元串。

.h 文件中有一個宏:#define SERVER_ADDRESS “www.customserver.net” 我想在部署軟體之前修改字元串,以便通過在命令行中傳遞地址來為自定義地址進行每次建構。

有誰知道如何做到這一點?

謝謝!

可以使用loadfile任務來幫助解決這個問題。此任務將給定文件載入到屬性中。真正有用的是當您應用帶有替換標記的過濾器鏈替換文件的某些區域時。例如,如果要定義一個類似模板的標頭檔,看起來像這樣:

#ifndef MyMacros_h
#define MyMacros_h

#define SERVER_ADDRESS "@SERVER_ADDRESS_TOKEN@"

#endif

可以使用 loadfile 任務將 @SERVER_ADDRESS_TOKEN@ 替換為任何字元串,然後使用echo任務將真正的頭文件寫回。

<loadfile file="MyMacrosTemplate.h" property="theMacrosFileContents">
   <filterchain>
       <replacetokens>
           <token key="SERVER_ADDRESS_TOKEN" value="www.customerserver.net" />
       </replacetokens>
   </filterchain>
</loadfile>
<echo file="MyMacros.h" message="${theMacrosFileContents}" />

這將生成一個 MyMacros.h 文件,其中包含 SERVER_ADDRESS 的修改字元串。

引用自:https://stackoverflow.com/questions/487451