我正在開發一個NANT構建項目來構建一個VS項目。其中一個構建文件具有如下屬性定義:在南特轉換長名稱爲短名稱?
<property name="App.dir"
value ="${directory::get-current-directory()}\Source\App"/>
此屬性值已在許多其他地方使用。例如:
<exec program=".\test.exe" workingdir=".">
<arg line="${App.dir}\project1\resources\res1.resx /arg2"/>
在這裏,我需要使用< ARG線= ...的>代替< ARG值= ... >是通過指定的2個參數,以text.exe。
當我在另一個開發人員的機器上構建這個NANT項目時,出現構建失敗。最後,我發現該開發人員機器上的$ {App.dir}是一個長格式的路徑,路徑中有一個空格。因此,text.exe的參數實際上是3個或更多。
我不知道是否有任何方式向$ {} App.dir路徑短名稱轉換不帶空格:
<property name="App.dir" value ="????"/>
地方????是將「$ {directory :: get-current-directory()} \ Source \ App」轉換爲短格式的路徑名。有沒有辦法做到這一點?
我在Windows XP中使用NANT。在Unix系統/ Cgywin,有one function讓DOS名稱:
cygpath::get-dos-path
我可以用這一個在我的NANT build文件?
無論在ARG值將被傳遞到我的regsgen運行。arg中的空格引起了問題。 – 2010-11-10 22:08:22
如果您使用<參數值=「...」>該值將自動引用,如果需要的話。作爲替代方案,您可以使用。 –
2010-11-11 14:59:19
value屬性將把整個值作爲一個參數。如果值中有空格,則會在值附近添加引號。我的問題是將價值作爲參數傳遞給我的EXE exe程序。如果$ {app.dir}的值是或中的一部分,則參數被解釋爲錯誤。 –
2010-11-12 17:33:58