在MsBuild中声明动态配置文件路径

 2021-01-19 

Declaring dynamic profile path in MsBuild

目前,我正在尝试将文件复制到用户个人资料内的某个位置,但是在声明动态个人资料名称时遇到了问题,例如:

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

声明动态用户配置文件名称的语法是什么?我是否必须从某个地方获取配置文件名称,或者是否有另一个MsBuild任务可以为我找到它?

谢谢。


您应该可以使用HOMEDRIVE和HOMEPATH env变量来获取它。例如:

1
2
3
4
5
6
7
8
9
10
11
<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目标时,您应该获得当前用户主目录的路径。