代码之家  ›  专栏  ›  技术社区  ›  TJ Rockefeller

如何清除Visual Studio的对象浏览器缓存?

  •  0
  • TJ Rockefeller  · 技术社区  · 6 年前

    我们有一个正在处理的库项目,在另一个项目中,我将功能分支安装为nuget包。正在对分支进行更改,但版本号没有更新,因此nuget包正在更新,但它具有相同的名称。

    我已经从我的packages文件夹中删除了nuget包,所以我知道我正在下载最新的包,如果我手动(在对象浏览器中)浏览到我下载到packages文件夹中的dll,那么对象浏览器数据看起来是正确的。

    我已经在我的项目中卸载并重新安装了nuget包,关闭了所有Visual Studio 2017实例,但仍有旧项存在于我通过nuget安装的dll的对象浏览器中。我希望生成失败,因为我引用的是旧项,但所有内容都成功生成,但是当我运行应用程序时,会收到运行时错误,因为我引用的代码中的旧项不再存在于当前下载的dll中。

    如果我们不必为每一个版本都增加版本,那就太好了,尽管我们可以设置TeamCity来自动实现这一点,但是在我们的feed中维护所有额外的nuget包会变得很困难。

    因此,除了在dev nuget包上转发版本号外,是否有任何方法可以清除Visual Studio 2017中的缓存,以便对象浏览器更新以反映包文件夹中实际存在的dll?

    1 回复  |  直到 6 年前
        1
  •  0
  •   TJ Rockefeller    6 年前

    我发现了问题。在我测试库的项目中,我有一个WPF项目和一个面向.NET标准的库项目。因为我正在积极工作的项目是wpf,所以我被分区到解决方案目录中的packages文件夹中,忘记了我还引用了同一个解决方案中的.NET标准,该解决方案从 C:\Users\[username]\.nuget\packages

    由于项目类型的原因,Visual Studio有两个用于Nuget包的位置。一在 C:\users\[用户名]\.nuget\packages 一个 [solution dir]\packages

    我只更新了解决方案目录包,但显然,Visual Studio 2017支持使用用户目录包,而这正是它提取旧API信息的地方。从我的用户目录中删除包后,一切正常工作。