我有一个 C# 应用程序,正在从 Visual Studio 发布到我的托管提供商,发布后出现错误:
Unable to add '###.dll' to the Web site. The process cannot access the file because it is being used by another process (550).
这是否表明文件正在我端(客户端)使用,或者文件正在远程服务器上使用并且不能被覆盖?如果我使用 ProcessMonitor,我无法看到 DLL 是如何被其他任何东西使用的。
因此,如果这是服务器上的问题,我肯定仍然可以发布我的文件,尽管它们正在使用,这可能会导致登录的用户使用时出现问题,但替代方法是什么,然后等待用户注销,然后快速发布。我确信当用户登录并使用该网站时我之前就能够发布。
在服务器端重命名 DLL,而不更改文件夹结构中的文件位置,并将新 DLL 移动到服务器上的同一文件夹中
这将使文件的句柄保持有效和工作,以便现有用户仍然能够正确访问该文件,并且新实例(或新句柄)将转到您刚刚发布的新 DLL 文件。