我自己回答这个问题,因为我在任何地方都找不到答案,这是我最喜欢的在线编程参考。希望它可以帮助别人。
我维护一个使用第三方 COM 组件的 WinForms 应用程序。我们最近升级到具有一些附加属性/功能的新版本组件(所有旧属性都完好无损),但我无法让 Visual Studio 检测到新属性。它的行为非常像挂在对旧版本组件的引用上。以下是我尝试清除它的步骤:
- 删除了使用组件的表单(首先复制代码)。此表单上的唯一控件是第三方组件。
- 删除了对旧组件的引用
- 删除解决方案目录中的 bin 和 obj 文件夹,以便在我添加新控件时新创建 PIA
- 卸载旧组件,安装新组件
- 打开解决方案,添加对新组件的引用
- 向应用程序添加了一个表单,将组件拖放到表单上并给它与旧控件相同的名称(这样就不必重构应用程序的其余部分
- 将表单代码粘贴回原位
那时,应用程序将编译并运行,但我无法让 Intellisense 检测新属性,如果我将它们放置在适当的位置,应用程序将无法编译。我尝试过的任何方法都不会显示新属性。