【问题标题】:NuGet Package Restore IssueNuGet 包还原问题
【发布时间】:2013-08-13 07:51:30
【问题描述】:

我需要 NuGet 来自动恢复包。目前,引用的 dll 丢失了。

我在我的解决方案中启用了package restore

.nuget 文件夹已签入。

为每个项目签入packages.config 文件。

packages 文件夹(解决方案级别)正在签入。

packages 文件夹包含解决方案使用的所有包的文件夹以及每个包的 nuspecnupkg 文件。 dll 未签入。

VisualStudio 中安装了包,但缺少对每个项目中 dll 的引用(因为没有签入 dll)。

我已尝试安装NuGetPowerTools。同样的故事。

谢谢,

【问题讨论】:

    标签: c# dll visual-studio-2012 nuget nuget-package


    【解决方案1】:

    没有理由签入包文件夹下的任何内容。或者,您可以签入 repositories.config 文件,但从技术上讲,这不是必需的。

    您在 Packages 文件夹中签入 nuspec 和 nupkg 文件是否正确?如果是这样,请删除它们。这些将被恢复,它们的存在可能会导致恢复失败(我认为 NuGet 包恢复不是检查包内容的存在,而是检查包文件夹中是否存在 nupkg/nuspec 文件,跳过如果找到该软件包,则不会被恢复)

    总之,只签到:

    1. 空解决方案级别packages 文件夹(可选repositories.config
    2. .nuget 文件夹及其内容
    3. packages.config 每个项目

    【讨论】:

    • 那么要签入的唯一与 NuGet 相关的文件(和文件夹)是空的解决方案级别包 folder 和每个项目的 packages.config 文件?我说的对吗?
    • 正确,只有空的 Packages 文件夹(可选的 repositories.config)和所有 packages.config 文件 + .nuget 文件夹应该被检入。
    • 我已经用一个简短的摘要编辑了你的答案,我希望这没问题。
    【解决方案2】:

    我在 Visual Studio 2015 Update 3 中遇到了这个问题。

    找到了一个对我有用的solution

    进入用户配置文件 NuGet 缓存 (C:\Users\<username>\.nuget\packages\),并删除了 在那里。

    我认为在恢复过程中我的缓存中的所有 DLL 都被清除了 文件,当我尝试安装一个包时,它正在使用缓存 而不是 NuGet 的文件。现在我已经清除了缓存,我 现在可以安装 NuGet 包了。

    【讨论】:

      【解决方案3】:

      这和我以前的症状几乎一样,然后原因是packages.config的权限级别。删除文件解决了我的问题。

      我不知道它是否会对您有所帮助,但请查看所有文件的权限集。

      【讨论】:

        【解决方案4】:

        同样,删除配置并重新引用所有包。认为它与SVN有关。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-08
          • 2015-06-06
          • 1970-01-01
          • 2013-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多