jo0*_*0ls 9 vb.net visual-studio-2015
我已经升级到Visual Studio 2015的几个VB.Net项目遇到了困难.这些项目已经从Visual Studio 2003到2005年升级到2010年到2012年多年.代码将编译并运行,没有错误.Debug.Print语句正确地将值写入立即窗口.但是,如果我启用断点并尝试查看监视窗口中的任何值,那么我会收到类似这样的错误,在监视窗口的值列中报告:
错误BC32208:项目已经引用了程序集' projectname .resources'.无法添加对" projectname .resources.dll"的第二个引用.
类似地,如果我闯入代码并将鼠标悬停在变量名称上,那么我不会得到包含变量当前值的弹出窗口.
我没有资源的项目升级没有任何问题.
有人遇到过这个问题吗?2015年项目中存储资源的方式是否有变化?
仅供参考,我刚刚为VS 2015 Update 2提供了解决方案(请参阅https://github.com/dotnet/roslyn/commit/e683a8438d42d92a3d142ba53f38b33315c7dea2).
在此期间,此问题的另一个可能解决方法是对您的应用程序(以及附属程序集)进行强名称签名.调试器正确地忽略了强名称情况下的多个资源dll,而不是"弱"名称情况.
我可以重现该错误 - 注意:我在英国:
。
Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
Dim test As DateTime = Now
Debugger.Break()
End Sub
Run Code Online (Sandbox Code Playgroud)
运行项目并单击表单 - 监视窗口将显示错误,并且弹出的测试窗口不会显示日期。
我通过删除不必要的本地化来修复我的项目。我猜它添加了英语和英国英语版本的资源。
编辑:这适用于简单的情况,但我维护的一些项目具有循环依赖关系。恶心。在这种情况下,构建任何项目都会从引用的项目中提取不需要的资源 dll。为了打破这个循环,我只是在构建之前从引用项目的 bin 文件夹中删除了不需要的 dll,这样它们就不会被复制进去。我已经向微软“发送了皱眉”描述这个问题。我已经花了一天半的时间来收拾烂摊子了...
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |