【问题标题】:NuGet.exe pack gives access to the path is deniedNuGet.exe 包提供对路径的访问被拒绝
【发布时间】:2021-11-10 23:48:03
【问题描述】:

当我尝试打包我的 MVC 项目 (NuGet.exe pack) 时,我得到:

NuGet.exe : Access to the path '...' is denied.

我的 MVC 解决方案的 contentscript 文件夹中的所有文件都是这种情况。如果我删除所有这些文件上的只读标志,NuGet.exe 就能够创建 NuGet 包。

为什么我必须删除只读标志?还有其他方法吗?

我正在使用 TFS,它在源代码控制下的所有文件上指定只读标志。

我正在跑步:

  • NuGet 版本:1.7.30402.9028
  • Microsoft Visual Studio 2010 版本 10.0.40219.1 SP1Rel

我正在使用您在安装位于http://nuget.org/packages/NuGet.CommandLine 的 NuGet 包NuGet.CommandLine 时获得的NuGet.exe

【问题讨论】:

  • 您运行的是哪个版本的 nuget?在哪个版本的VS下?
  • 我已经用版本信息更新了问题。
  • 这个问题有答案吗?我也有类似的问题。
  • 不,我使用 PowerShell 脚本删除只读标志,然后打包。

标签: visual-studio nuget


【解决方案1】:

显然,您需要为它访问的文件设置ReadOnly=false

【讨论】:

  • 链接中提到了升级和卸载。它还指出它与离线模式有关。问题是关于在线模式下的包装
  • 嗯,好点子,我意识到问题是关于打包的(我遇到了同样的问题)也许我们需要专门针对这个问题在 NuGet 上打开另一个问题。
  • +1 我在通过“管理解决方案包”将包应用到项目时遇到了类似的问题。您的解决方案有所帮助。
  • 同样将包置于 TFS 源代码管理下也会使它们成为只读,从而导致此错误。
【解决方案2】:

尝试以管理员身份运行它。

【讨论】:

    【解决方案3】:

    在打开 VisualStudio 的情况下执行 git clean -fd 后,我在 nuget restore 遇到了这个问题:packages/ 目录被标记为删除,虽然删除了几个文件,但 packages/ 文件夹本身并不像 VisualStudio 那样.nupkg 文件打开。

    关闭 VisualStudio 并重新运行 git clean 后,它会删除 packages/ 目录,然后 nuget 能够正确恢复所有内容。

    【讨论】:

    • 相同。我在打开 VS 运行 dotnet nuget locals all --clear 后遇到了这个问题。
    【解决方案4】:

    在我的情况下,在 git 中切换分支时发生了一些事情。每个人都失去了 Nuget.exe 的执行权限。

    这篇博文帮助了我:http://mannysiddiqui.wordpress.com/2013/05/11/nuget-access-is-denied-command-existed-with-code-5/

    【讨论】:

      【解决方案5】:

      我遇到了类似的问题。我试图重新启动 Visual Studio,以管理员身份运行(我总是这样做),设置文件夹属性以确保“只读”标志已关闭。无论如何,无论我做什么,在更新我的 Nu-Get 包时,我仍然遇到错误“访问路径被拒绝”。

      我能够通过一个一个更新软件包来解决这个问题。而是选择遍历每个依赖项并更新它。更新依赖项后,我会选择另一个,有时会导致相同的错误,在这种情况下我会选择另一个,直到我的所有包都成功更新。

      在我的例子中,Nu-Get 包必须按特定顺序更新。

      希望这对那里的人有所帮助

      【讨论】:

        【解决方案6】:

        我遇到了这个问题,结果是 Windows 有更新等待下一次重新启动。重启后清除没有问题,等待更新。

        【讨论】:

          【解决方案7】:

          我的同事在所有“在我的机器上工作”期间遇到了这个错误。经过一番研究,我发现 *.nuspec 文件由于某种原因没有添加到版本控制中。

          【讨论】:

            【解决方案8】:

            为了恢复 nuget 包,请从文件夹级别删除只读权限(对于 Windows)。清理解决方案并构建。它会起作用的

            【讨论】:

              【解决方案9】:

              在我的情况下,它是最近修改的 git repo root 中的*.gitattributes(不正确),因此 git 开始在构建服务器上签出 nuget.exe 并将所有 LF 转换为 CRLF 内部,使其非可执行文件。

              【讨论】:

                【解决方案10】:

                以管理员权限运行您的 Visual Studio。

                【讨论】:

                  猜你喜欢
                  • 2021-04-02
                  • 2017-01-24
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-04-30
                  • 2013-02-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多