我想在構建解決方案之前用NAnt修改.h文件中的字符串。如何用NAnt修改源文件?
在.h文件中有一個宏:#define SERVER_ADDRESS「www.customserver.net」,我想在部署軟件之前修改字符串,這樣每個構建都可以通過在命令行中傳遞地址來實現自定義地址。
有誰知道這可以做到嗎?
謝謝!
我想在構建解決方案之前用NAnt修改.h文件中的字符串。如何用NAnt修改源文件?
在.h文件中有一個宏:#define SERVER_ADDRESS「www.customserver.net」,我想在部署軟件之前修改字符串,這樣每個構建都可以通過在命令行中傳遞地址來實現自定義地址。
有誰知道這可以做到嗎?
謝謝!
可以使用loadfile任務來解決這個問題。此任務將給定文件加載到屬性中。當您應用filterchain和replacetokens替換文件的某些區域時,真正有用的是什麼。例如,如果一個人來定義看起來是這樣的一個類似模板頭文件:
#ifndef MyMacros_h
#define MyMacros_h
#define SERVER_ADDRESS "@[email protected]"
#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的修改字符串。
我不認爲這是使用NAnt的正確方法。我不想以這種方式修改文件內容。我不相信這是可能的。
也許你可以爲每種情況有不同的文件,並根據輸入參數指定路徑。
就我個人而言,我認爲這樣的字符串不應該被硬編碼到應用程序中。如果他們要更改,最好將其外部化爲啓動時讀取的配置文件或屬性文件。這樣,您可以更改它們而無需更改源代碼或重新編譯。