0

Windows 7 64 位上的 Visual Studio 2010 正在锁定 .aspx、.ascx、.css 和 .js 文件。我是一名前端 Web 开发人员,我编写了一个 ROBOCOPY 脚本,以防止我不得不对我们的解决方案进行完整构建。该解决方案一个构建后步骤,用于将所有 Web 资产文件(非编译文件)复制到部署目录中。问题是这会触发 IIS 重新启动应用程序并需要重新登录,所以这是一个痛苦的选择,尤其是当我希望能够对 css、js 和 html 模板进行快速、增量更新时。

ROBOCOPY bat 文件:

robocopy C:\**sln dir**\Content C:\**deploy dir**\Content /MIR /ZB /B /XD "*.svn"
robocopy C:\**sln dir**\Views C:\**deploy dir**\Views /MIR /ZB /B /XD "*.svn"
robocopy C:\**sln dir**\Scripts C:\**deploy dir***\Scripts /MIR /ZB /B /XD "*.svn" "*.idea"

命令输出:

2011/02/16 11:16:01 ERROR 32 (0x00000020) Copying File C:\*** etc ***\Edit.aspx
The process cannot access the file because it is being used by another process.

每次我连续运行脚本时,都会对一个文件进行锁定,然后在下一个文件上崩溃,直到最后,所有文件都复制过来。我已经尝试过 /W:n 标志,但是在我 ctrl+C 然后再试一次之前,锁永远不会释放。有什么方法可以让 robocopy 接受锁定的文件,或者让 VS2010 不锁定打开编辑的文件?

4

1 回答 1

0

您可以使用 SysInternals 工具找出锁定文件的进程,我猜它是 Cassini 网络服务器。如果是这样,那么可以使用带有 SP 1 Beta(beta yikes)和 IIS Express 的 Visual Studio 2010 来代替 Cassini。我不知道这对您的开发环境是否有意义,或者当您想要执行 robocopy 时它是否会阻止您的文件被锁定,但值得一看。

于 2011-02-16T20:01:41.340 回答