MSBuild扩展包:文件/文件夹任务的凭据?

时间:2009-12-09 07:36:50

标签: .net msbuild permissions

下午好,

说是否可以使用MSBuild扩展包为文件或文件夹活动(例如removecontent)提供凭据(用户名/密码)?在...中,构建用户不需要我想用来删除/使用我需要修改/删除的某些文件夹/文件(例如远程使用UNC共享)。

这可行吗?我有点失落: - /

干杯谢谢,

-J

1 个答案:

答案 0 :(得分:2)

RemoveContent任务和MSBuild Extension Pack的其他文件夹任务在内部使用DirectoryInfo

要访问远程文件夹DirectoryInfo句柄UNC path,问题是您无法将凭据放在UNC path中。因此,只能使用RemoveContent任务直接执行您想要的操作。

解决方法:

  • 简单的一个:赋予构建代理权限
  • 更好:将文件夹映射到网络驱动器,并在MSBuild任务中使用此网络驱动器。这可以使用MSBuild Exec任务和net命令

    来完成
    <Target Name="MapAndRemove">
      <!-- Map the remote folder with credential -->
      <Exec Command="net use Z: \\ServerName\ShareName\YourFolder {Password} /user:{User} /yes"/>
    
      <!-- Remove content in remote folder using network drive -->
      <MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" 
                                               Path="Z:\"/>
    </Target>
    
  • 更难:编写一个MSBuild自定义任务,执行您想要的任务并将凭据作为参数。