无法在构建时将文件复制到服务器。访问路径被拒绝

时间:2009-12-17 18:03:43

标签: visual-studio

我在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'被拒绝。

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

9 个答案:

答案 0 :(得分:17)

一定是傻事。我手动删除了.dll,然后重建了。看起来一切正常。感谢。

答案 1 :(得分:3)

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

答案 2 :(得分:3)

我有同样的问题。 Visual Studio(devenv.exe)的副本仍然在后台运行,保持特定的dll锁定。

答案 3 :(得分:3)

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:0)

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

在运行某些东西进行调试时会发生这种情况,我忘了关闭它(没有连接到IDE调试器)。

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

工作解决方案

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

右键单击显示属性。只需提供管理员访问权限即可。

这对我来说都很好。 (我挣扎了一个星期而且我的时间更多了)

答案 8 :(得分:0)

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