0

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

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

我已经在我的项目中卸载并重新安装了 Nuget 包,我已经关闭了 Visual Studio 2017 的所有实例,但我通过 Nuget 安装的 dll 的对象浏览器中仍然存在旧项目。我预计会出现构建失败,因为我正在引用旧项目,但是一切都成功构建,但是当我运行应用程序时,我遇到运行时错误,因为我在代码中引用的旧项目不再存在于 dll 中目前已下载。

如果我们不必为每个构建增加版本就好了,尽管我们可以将 TeamCity 设置为自动执行此操作,但是在我们的提要中维护所有额外的 Nuget 包会变得很困难。

那么,除了在开发 Nuget 包上增加版本号之外,有没有办法清除 Visual Studio 2017 中的缓存,以便对象浏览器更新以反映包文件夹中实际存在的 dll?

4

1 回答 1

0

我发现了问题。在我测试库的项目中,我有一个 wpf 项目和一个针对 .Net 标准的库项目。由于我正在积极从事的项目是 wpf,因此我被划分在解决方案目录中的 packages 文件夹中,忘记了我还在同一解决方案中引用了 .Net 标准,该解决方案从中提取 Nuget 包C:\Users\[username]\.nuget\packages

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

我只更新了解决方案目录包,但显然 Visual Studio 2017 倾向于使用用户目录包,这就是它提取旧 API 信息的地方。从我的用户目录中删除包后,一切都按预期工作。

于 2018-12-19T15:37:33.633 回答