2010-01-13 64 views
2

目前我正在嘗試將文件複製到一個位置上,用戶的個人資料裏,打了一個問題,聲明動態配置文件名稱,例如:中的MSBuild聲明動態配置文件路徑

<Target Name="CopyScript"> 
    <MsBuild Projects="JsProject.csproj" /> 
    <Copy SourceFiles="$(ProjectDir)\myScript.js" DestinationFolder="$(systemdrive)\Documents and Settings\$(userProfileName)" /> 
</Target> 

什麼是語法聲明動態用戶配置文件名稱?我是否需要從某處獲取配置文件名稱,或者是否有另一個可以爲我找到的MsBuild任務?

謝謝。

回答

5

你應該可以通過HOMEDRIVE和HOMEPATH env變量得到它。例如:

<Project ToolsVersion="3.5" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <PropertyGroup> 
    <UserDir>$(HOMEDRIVE)$(HOMEPATH)</UserDir> 
</PropertyGroup> 

    <Target Name="Demo"> 
<Message Text="UserDir : $(UserDir)" Importance="High" /> 
    </Target> 

</Project> 

當您執行Demo目標時,您應該獲取當前用戶主目錄的路徑。

+0

@ Sayed:我用你的例子,它返回「C:\ Documents and Settings \ Administrator」。如果我只希望它返回「管理員」,我只是使用像$(用戶名)的東西? – BeraCim 2010-01-14 03:28:26

+0

在這種情況下,您將使用env變量USERNAME,所以$(USERNAME) – 2010-01-14 14:23:50

+1

您也可以使用'$(USERPROFILE)',這將消除連接'HOMEDRIVE'和'HOMEPATH'的需要。 – bsara 2016-09-15 23:44:12