当我将鼠标悬停在变量上时,Visual Studio 2015手表中的错误并且没有值弹出窗口。 BC32208

时间:2015-07-27 10:18:36

标签: vb.net visual-studio-2015

我已经升级到Visual Studio 2015的几个VB.Net项目遇到了困难。这些项目已经从Visual Studio 2003到2005年升级到2010年到2012年多年。代码将编译运行没有错误。 Debug.Print语句正确地将值写入立即窗口。但是,如果我启用断点并尝试查看监视窗口中的任何值,那么我会收到类似这样的错误,在监视窗口的值列中报告:

  

错误BC32208:项目已经有对程序集的引用   '项目名称的.resources'。第二个参考    projectname .resources.dll'无法添加。

同样,如果我闯入代码并将鼠标悬停在变量名称上,那么我不会得到包含变量当前值的弹出窗口。

我没有资源的项目升级没有任何问题。

有没有人遇到过这个问题? 2015年项目中存储资源的方式是否有变化?

3 个答案:

答案 0 :(得分:6)

仅供参考,我刚刚为VS 2015 Update 2提供了解决方案(请参阅https://github.com/dotnet/roslyn/commit/e683a8438d42d92a3d142ba53f38b33315c7dea2)。

在此期间,此问题的另一个可能的解决方法是对您的应用程序(以及附属程序集)进行强名称签名。调试器正确地忽略了强名称情况下的多个资源dll,而不是" weak"名称案例。

答案 1 :(得分:2)

我可以重现错误 - 注意:我在英国:

  • 启动一个新的Windows窗体项目。
  • 将表单设置为localizable True。
  • 将语言设置为英语。
  • 将表单标题设置为英语。
  • 将语言设置为英语(美国)
  • 将表单标题设置为英语(美国)
  • 将语言设为英语(英国)
  • 将表单标题设置为英语(英国)
  • 为表单添加单击处理程序。

Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
   Dim test As DateTime = Now
   Debugger.Break()
End Sub

运行项目并单击表单 - 监视窗口将显示错误,弹出测试不会显示日期。

我通过删除不必要的本地化来修复我的项目。我想这是在添加英语和英语版本的资源。

编辑:这适用于简单的情况,但我维护的一些项目具有循环依赖性。呸。在这种情况下,构建任何项目都会从引用的项目中获取不需要的资源。为了打破这个循环,我只是在构建之前从引用项目的bin文件夹中删除了不需要的dll,这样它们就不会被复制了。我已经向微软发送了一个皱眉,描述了这个问题。我花了一天半的时间来整理这个烂摊子......

答案 2 :(得分:2)

我想出了如何修复它。我进入了项目属性,在大会下,并设置了中性语言 - 在我的情况下设置为英语 - 美国。

问题解决了!