【问题标题】:Could not write to output file -- Access is denied无法写入输出文件——访问被拒绝
【发布时间】:2013-08-19 02:05:09
【问题描述】:

我最近更换了计算机并将所有项目复制到我的新本地驱动器。我重新格式化了我现在使用的计算机,所以它几乎是一台干净的机器。一切似乎都运行良好,但是当我打开我从旧机器上运行的一个项目时,它不再编译,并且我收到以下错误消息: 无法写入输出文件“c:\Users\user\Documents\Projects\RegressionWeb\OnetouchUpload\obj\debug\OneTouchUpload.dll”——“访问被拒绝。”

对于我的解决方案中的每个项目,我都会收到类似的错误。我也收到此错误: 创建调试信息文件 'c:\Users\user\documents\projects\RegressionWeb\RegressionWeb\obj\Debug\RegressionWeb.PDB' 出现意外错误访问被拒绝

我已经搜索了高低,我可以在网上找到的唯一与 ASP.NET 和 IIS 相关的类似问题,这两者都与我的项目无关(我的项目是主要包含 NUnit 测试的类库一些支持类)。

我是本地计算机的管理员。我已经使用 takeown /f .\RegressionWeb /r /dy 获得了项目中每个文件的所有权,并且还尝试确保没有任何内容具有只读状态,但是当我尝试更改读取时,以下文件引发了错误- 它的父文件夹的唯一属性: 将属性应用到文件时发生错误: C:...\Regressionweb.sln.DotSettings.user 访问被拒绝

基本上这个项目运行良好,我的旧电脑没有任何错误。复制完所有内容后,不会修改此 DotSettings.user 文件,并且 Visual Studio 无法写入任何 dll 文件。我确信答案必须在某个地方的 Visual Studio 设置中。任何和所有建议将不胜感激。

【问题讨论】:

  • 你检查过文件是否是只读的吗?
  • 是的。导致错误的文件都没有设置该属性。父目录似乎没有子目录,当我尝试更改它时,我在第 4 段中描述的情况发生了
  • 权限呢?你确认你已经读/写了吗?
  • 是的,我拥有当前用户帐户和管理员组成员的权限
  • VerySleepy 可以使用这个文件,对我来说关闭它已经解决了问题

标签: c# visual-studio-2012 permissions compiler-errors windows-7-x64


【解决方案1】:

我认为卡尔说得对。我曾经遇到过类似的情况,我所做的是删除有问题的文件,清理解决方案,然后重建。如果项目需要该文件,则应重新创建它;就我而言,它不需要它,因为它从未重新创建它,但项目运行得很好。

我要推荐的另一件事;您可能选择关闭父文件夹的只读属性并选择此设置以递归所有子文件夹和文件,但这并不意味着正在发生的事情。对于您的所有子文件夹和文件(尤其是那些出现错误的文件),分别检查每一个并确保只读属性已关闭。

【讨论】:

  • 删除有问题的文件、清理解决方案和重建正是对我有用的方法。
  • 对于何时无法删除相关文件有什么建议吗?当我尝试通过文件资源管理器删除时,它告诉我访问被拒绝,并且即使我是管理员,我也需要管理权限。如果我尝试取消选中父文件夹的只读属性,我会得到类似的结果。
【解决方案2】:

我的钱是你的文件是只读的。验证它们是只读的并更改它们或将您的文件添加到源代码控制系统并让它们得到处理。

【讨论】:

  • 会有道理,就像我说的父文件夹确实设置了只读属性,但是当我更改它并选择应用时,我得到一个引发此错误的文件:应用属性时发生错误到文件: C:...\Regressionweb.sln.DotSettings.user 访问被拒绝,我忽略了,但是当我检查父文件夹时,只读属性仍然设置
  • 这对我来说是个问题。谢谢,@DarianEverett。
  • 我刚才遇到了这个问题,你的钱花得很值。这就是我的问题。
【解决方案3】:

当应用程序池用户无权访问 %TMP%/%TEMP% 文件夹时,似乎有时会显示相同的错误。

您需要授予 IIS_IUSRS 对运行应用程序池的用户的临时文件夹的读取和修改访问权限。

这可能是应用程序池用户配置文件中的临时文件夹,例如c:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp,或 c:\windows\temp 的系统临时文件夹。

【讨论】:

    【解决方案4】:

    我可以通过关闭 Visual Studio 然后再次打开它来完成这项工作,但要小心以“以管理员身份”运行 Visual Studio。为此,从“开始”菜单中,右键单击 Visual Studio 并选择“以管理员身份运行”。

    【讨论】:

      【解决方案5】:

      看看是否和这个有关:Could not write to output file - Access is denied .这将是一个有点麻烦追查。在这种情况下,项目会自引用 dll 并阻止对文件的访问。

      【讨论】:

        【解决方案6】:

        选择Configration manager go only change 就只改平台,如果没有 其他 patform instid 你正在使用什么所以选择平台的下拉菜单并添加新的 平台那么它将解决您的所有问题,谢谢。

        【讨论】:

          猜你喜欢
          • 2012-06-14
          • 1970-01-01
          • 2011-05-24
          • 2017-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多