【问题标题】:Visual Studio doesn't recognize new property in library hosted on NuGet/BaGet showing false Intellisense errorsVisual Studio 无法识别 NuGet/BaGet 上托管的库中的新属性,显示错误的 Intellisense 错误
【发布时间】:2020-05-03 16:22:12
【问题描述】:

我开发了一个库,它在BaGet 上发布并用于我的一个项目。在库中扩展模型时,我将其发布到 BaGet,然后使用 VS NuGet 包管理器更新引用项目中的包。有时,VS 无法识别 Intellisense 中的这些变化。

示例:我在库项目中添加了一个模型字段AuthorUserName并发布:

public class VBLightForumThread {
    // Other fields
    public string AuthorUserName { get; set; }
}

在我的项目中更新新库后,intellisense 在使用AuthorUserName 属性时显示错误:

但更新已应用。在 Razor 视图的情况下,我仍然可以开始调试,并且作者姓名显示在呈现的 HTML 中。这甚至可以在控制器中得到证明:VS 显示错误,这通常会导致编译错误。但无论如何我都可以编译和调试。在调试期间它向我显示了属性值,尽管VS仍然显示AuthorUserName不存在的错误:

由于在 VS 错误控制台中有很多这些错误错误很烦人:我该如何解决这个问题,以便 VS 在智能感知中向我显示这些新属性而不是抛出错误?

我已经尝试过了,但没有成功:

  • 清洗溶液
  • 重新构建解决方案
  • 重启 Visual Studio

我安装的版本是 Visual Studio 2019 Community 16.5.4。唯一有助于临时的事情是更新 VS。在上述错误错误的情况下,我注意到了 VS 更新。更新后,错误消失了。但是现在我扩展了一个库的模型,错误依然存在。所以更新并没有修复它,但似乎 VS 有某种 Intellisense 缓存被更新清除了。

【问题讨论】:

    标签: c# visual-studio intellisense visual-studio-2019


    【解决方案1】:

    作为一种解决方法,它有助于关闭 VS,然后删除 <ProjectName>/.vs/<ProjectName> 中的 DesignTimeBuild 文件夹并重新打开 VS。花了一些时间,错误消失了。

    虽然可行,但我更喜欢一些长期解决方案,在更新 NuGet 包后自动刷新缓存。我假设 VS 自己会这样做,否则在这些更新之后不会显示任何修改。因此,如果有人对此问题有完整的解决方案,请仍然发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 2014-01-13
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2014-01-21
      • 2020-10-07
      • 2021-06-02
      相关资源
      最近更新 更多