【问题标题】:Unable to copy file to server on build. Access to path is denied无法在构建时将文件复制到服务器。访问路径被拒绝
【发布时间】:2017-07-13 02:16:20
【问题描述】:

我在 Visual Studio 中有一个由 5 个项目组成的解决方案。项目构建为程序集 (.dll)。我将每个项目的输出路径设置为 \my-web-server\wwwroot\bin,这在一个项目上运行良好。在我所有项目的属性中,我将输出路径设置为同一目录,但是当我尝试构建除一个项目之外的所有项目时,出现错误:

无法将文件“obj\Release\Index.dll”复制到“\my-web-server\wwwroot\bin\Index.dll”。拒绝访问路径“\my-web-server\wwwroot\bin\Index.dll”。

我认为这可能是权限问题,因为我的组织将事情锁定,但我无法控制授予权限。非常感谢您在正确方向上的任何帮助。

【问题讨论】:

    标签: visual-studio


    【解决方案1】:

    这一定很愚蠢。我手动删除了.dll,然后重建。看起来一切正常。谢谢。

    【讨论】:

    • +1 如果下一个人可以在删除文件之前运行 SysInternals 工具以查看导致访问被拒绝的原因(即文件上的锁定)并报告根本原因,将不胜感激。
    • 运行 SysInternals procexp:devenv.exe 位于文件上。卸载项目不起作用,但在关闭解决方案后,我可以从 bin 中删除 System.Web.WebPages.Deployment.dll。嗯。
    • 完美!!删除 bin 文件夹中的所有文件并构建它后工作正常。
    【解决方案2】:

    我的解决方案是删除每个项目中 bin 和 obj 文件夹中的所有内容。只需按照here 的描述运行这个 powershell 脚本。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。 Visual Studio (devenv.exe) 的副本仍在后台不可见地运行,保持特定 dll 锁定。

      【讨论】:

        【解决方案4】:

        从 bin 文件夹中删除所有 DLL 并构建解决方案。

        【讨论】:

          【解决方案5】:

          刚刚遇到同样的问题,构建了一个新的项目/解决方案,让它全部工作,然后添加到 TFS。

          不幸的是,我在添加之前没有清理构建,这意味着一些不应该受源代码控制的文件是只读的(未检出)。 在重建之前手动删除文件修复了问题。

          【讨论】:

            【解决方案6】:

            很可能一个程序正在使用该库运行。

            在运行要调试的东西时发生这种情况,我忘记关闭它(未附加到 IDE 调试器)。

            由于这看起来像一个网站,这可能是由于该网站是从开发构建文件夹托管的,并且有人正在访问它。

            【讨论】:

            • 我想不出其他任何可以访问该文件的东西。我什至在 IIS 中停止了网站,然后在停止时尝试构建。不行。
            【解决方案7】:

            类似于Aequitarum said,它很可能是一个锁定的文件,因为它正在使用中。由于您有多个项目,因此您很可能在它们之间有引用。并且由于您将所有项目输出到同一个文件夹,如果您将这些文件设置为部署在子项目中,那么任何引用的项目很可能会被复制多次。 (在 C# Web 应用程序中,您可以查看引用的属性并查看“复制本地”属性。)如果您将 MsBuild 项目设置为使用多个处理器进行构建,则两个子项目都在尝试复制文件几乎同时出现,但其中一个出错了。

            这是一个非常独特的情况,但有可能。

            【讨论】:

              【解决方案8】:

              工作解决方案

              只需转到任务管理器并搜索详细信息(如果是 Win10)并使用您的应用程序名称进行搜索(为了方便搜索,只需查看您的 Windows 用户 ID)

              然后右键单击显示属性。只需授予管理员访问权限等权限。

              这对我来说一切正常。 (我挣扎了 1 周,它浪费了我更多的时间)

              【讨论】:

                【解决方案9】:

                看起来 WSearch 服务锁定了文件而不释放它们。我在 WINDOWS 10 上禁用了该服务,并且能够重建解决方案。

                【讨论】:

                  猜你喜欢
                  • 2011-10-31
                  • 2017-07-29
                  • 2021-05-03
                  • 2019-12-14
                  • 2018-04-20
                  • 2019-01-31
                  • 2016-02-29
                  • 1970-01-01
                  相关资源
                  最近更新 更多