2011-08-16 23 views
2

我試圖通過msbuild使用nant來構建解決方案。問題是solution's目錄是:xml nant和ó字符

C:\Repositorio\Proyectos Casino\SPPM\Codificación\PokerManager 

的喲可以看到它有一個斯佩恰字符ó

這是我的構建文件

<?xml version="1.0" encoding="ascii"?> 
<project name="Simple" default="copy"> 
<property name="nantcontrib-dir" 
    value="${path::combine(nant::get-base-directory(), '..\..\nantcontrib-0.85')}" overwrite="false" /> 

<property name="dest-dir" 
    value="C:\temp\nant\table\full-release" overwrite="true" /> 

<property name="remote-dir" 
    value="C:\temp\nant\table\full-release" overwrite="true" /> 


<property name="cleandir" 
    value="C:\temp\nant\table" overwrite="false" /> 



<property name="pm-soldir" 
    value ="C:\Repositorio\Proyectos Casino\SPPM\Codificación\PokerManager\PokerManager.sln" /> 



<loadtasks assembly= 
    "${path::combine(nantcontrib-dir,'bin/NAnt.Contrib.Tasks.dll')}" 
/> 
<target name="build-PokerManager" 
     description="Builds all C# code"> 

<property name="nant.settings.currentframework" value="net-4.0"/> 
    <msbuild project="${pm-soldir}"> 
    <property name="Configuration" 
       value="release" /> 
    <property name="OutputPath" value="${dest-dir}"/> 

    </msbuild> 
</target> 


<target name="copy" depends="build-PokerManager"> 
    <copy todir="${remote-dir}"> 
    <fileset basedir="${dest-dir}"> 
     <include name="**/*" /> 
    </fileset> 
</copy> 
    </target> 



</project> 

當我運行它,我得到

集結PokerManager:

BUILD FAILED 

C:\Juan Pablo\Release Maker\ForTablet\NAnt\table-releases.build(30,4): 
'C:\Repositorio\Proyectos Casino\SPPM\Codifica 
ci?n\PokerManager\PokerManager.sln' is not a valid value for attribute 'project' 
of <msbuild ... />. 
    not valid characters in path.. 

Total time: 0.1 seconds. 

從來就嘗試使用UTF-8和Unicode,但它didn't工作提前

感謝

回答

1

我認爲斯普利是走在正確的軌道上; <?xml version="1.0" encoding="ascii"?>不應該是<?xml version="1.0" encoding="UTF-8"?>。 Ascii在Unicode字符方面表現不佳...

+0

+1。這是一個很好的觀點。我從他的評論中假設他已經嘗試過使用UTF-8,但是你完全有理由指出 - 你可以在標題中設置UTF-8的全部內容,但是如果文檔本身說它是ASCII,那麼它不會是UTF-8。 – Spudley

1

UTF-8編碼應該工作,但可能在一些系統中不喜歡對付呢?

在沒有UTF-8的情況下,您是否嘗試過實體編碼?

ó字符將編碼爲&#211;的XML實體代碼。無論字符編碼是什麼,這都應該在XML中起作用。

(但不要只是將字符串替換爲一個字符 - 使用適當的實體編碼功能,因此您可以確保您可以捕獲任何其他潛行字符,現在或將來都會潛伏)