.NET项目中如何将构建文件复制到含通用用户路径的指定目录?
替换CSPROJ构建后事件中的特定用户路径为通用路径
当然可以,你可以用MSBuild内置的环境变量替换硬编码的特定用户名,让路径适配任意Windows用户。
Windows系统中,每个用户的个人目录可通过%USERPROFILE%环境变量访问,对应MSBuild脚本里的变量是$(UserProfile)。直接用这个变量替换路径里的C:\Users\axeman部分即可。
修改后的Target代码如下:
<Target Name="CopyDLLs" AfterTargets="Build"> <Message Text="Executing CopyDLLs of $(ProjectName) task" Importance="High" /> <Copy SourceFiles="$(TargetDir)$(ProjectName).dll;$(TargetDir)$(ProjectName).pdb;$(TargetDir)$(ProjectName).deps.json" DestinationFolder="$(UserProfile)\AppData\Local\MyApp\UserTiles\Dev" /> <Message Text="Copied build files" Importance="High" /> </Target>
这样无论哪个用户编译项目,都会自动将文件复制到当前用户的对应目录下,无需手动修改用户名。
额外优化:如果你直接要定位到AppData\Local,可以用MSBuild的$(LocalAppData)变量,它直接指向当前用户的C:\Users\[用户名]\AppData\Local路径,路径写法会更简洁:
DestinationFolder="$(LocalAppData)\MyApp\UserTiles\Dev"
内容的提问来源于stack exchange,提问作者axcelenator
相关产品推荐
相关产品推荐

