Nant:更改文件权限

Jul*_*n N 8 nant file-permissions

我有一个ASP.NET应用程序.基本上交付流程是这样的:

  • Nant构建应用程序并在开发人员的计算机上创建一个zip文件,其中包含没有SVN文件夹和无用文件的应用程序文件.此文件随Nant脚本一起提供.
  • zip和nant文件将复制到客户端的计算机上
  • Nant脚本用zip文件中包含的文件替换当前的网站文件.

我的问题是,当我尝试打开网站时,我有一个未经授权的访问错误.似乎文件需要为用户" IIS_WPG " 设置权限.

我无权更改IIS配置,因此我必须手动更改每个文件的权限.每次我更换文件时,权限都会被删除,我需要再次设置它们.

所以我有两个问题:

  • 我可以用Nant更改文件权限吗?怎么做 ?
  • 有可能避免这个问题吗?(开发人员在他们的计算机上没有此用户)

Jul*_*n N 7

@Jeff Fritz Ouch ...你的建议是正确的解决方案,但参数是......危险:).

在开发计算机上我以管理员身份登录,并尝试使用cmd建议.

  • 它取代了设置的所有权限,以便仅设置命令中定义的权限(因此,在命令之后,即使使用我的管理员用户,访问文件也会导致"拒绝访问")
  • 它应用于C:\ WINDOWS \目录,而我从wwwroot文件夹中调用了该命令.:)

所以,经过一些测试,正确的命令是:

cacls [full folder path] /T /E /G IIS_WPG:F
Run Code Online (Sandbox Code Playgroud)
  • / T:适用于指定的文件夹和子文件夹
  • / E:编辑 ACL而不是替换它:)


Jef*_*itz 4

您需要在Windows中运行CACLS程序来授予文件和文件夹权限。在 Nant 中,您可以使用 EXEC 任务来完成此操作。

尝试使用如下标签块:

<exec program="cacls">
    <arg value="*" />
    <arg value="/G IIS_WPG:F" />
</exec>
Run Code Online (Sandbox Code Playgroud)