2017-02-14 138 views
0

我正在使用TeamCity構建使用Nant腳本的.Net解決方案,並且如果硬編碼解決方案路徑,一切正常。我想使用TeamCity(env。)中的環境變量作爲解決方案路徑 - > env.solution.path ----- C:\ a \ testteamcity \ Demo \ deptest.sln內部Nant腳本test.build文件:如何在Nant腳本中執行Teamcity中的環境變量(環境)

<?xml version="1.0"?> 
<project name ="first Nant file" default="compile-solution" > 
<property name="bin.folder.svn" value="C:\a\testteamcity\Demo\bin123"/> 
<property name="bin.folder.sln" value="C:\cicheckout\webapp\bin"/> 

<target name="compile-solution"> 
    <exec program="C:\Program Files (x86)\MSBuild\12.0\Bin\Msbuild.exe" verbose="true" > 
     <arg line="${environment::get-variable('env.solution.path')}" /> 
     <arg value="/p:Configuration=Release" /> 
    </exec> 

<copy todir="${bin.folder.sln}" overwrite="true" failonerror="true"> 
     <fileset basedir="${bin.folder.svn}">   
     </fileset> 
</copy> 
</target> 
</project> 

錯誤:意外的標記'標點符號'。 表達式:$ {環境::獲取變量( 'env.solution.path')} 任何幫助,將great.Thanks

+0

看起來像它可能是因爲你使用了引號一樣簡單,除非這只是一個複製粘貼錯誤 - 你的' get-variable'參數應該用簡單的單引號括起來:'$ {environment :: get-variable('env.solution.path')}' –

+0

這就是複製粘貼錯誤:[15:59:54] [ NAnt輸出]表達式:$ {environment :: get-variable('env.solution.path')} [15:59:54] [NAnt輸出] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ [15:59:54] [NAnt輸出]環境變量「env.solution.path」不存在。 –

+0

請注意,您現在有不同的錯誤。 –

回答

0

創建system.solution.path - > C:\ A \ testteamcity \演示\在TeamCity的和南特腳本下的系統屬性(系統)。deptest.sln - >

<?xml version="1.0"?> 
<project name ="Build-Solution" default="build-solution" > 
<property name="solution.path" value="${system.solution.path}" dynamic="true" unless="${property::exists('solution.path')}"/> 
    <!-- Build solution --> 
<target name="build-solution"> 
<exec program="C:\Program Files (x86)\MSBuild\12.0\Bin\Msbuild.exe" verbose="true" > 
    <arg line="${solution.path}" /> 
    <arg value="/p:Configuration=Release" /> 
</exec> 
</target> 
</project>