我正在尝试为学校项目开发Silverlight应用程序。
但我遇到Visual Studio没有加载断点的问题,因此很难使用ViewModels调试Silverlight应用程序。
我尝试在“项目属性”下添加“Silverlight” - > “网络” - > “Silverlight”,但这没有做任何事。
这很奇怪,因为它有效。我尝试过使用Chrome,Firefox和Internet Explorer。并使用Silverlight 4和3。
有人知道解决方案吗?
答案 0 :(得分:6)
我发现如果您将默认浏览器设置为IE(我只使用了Silverlight的IE8)会有所帮助。这样,当您按F5时,Visual Studio似乎能够将调试器连接到Silverlight插件。然后,您应该能够使用VS调试器。
我当然难以尝试使用Firefox调试Silverlight应用程序。 Firefox在一个单独的进程中运行插件(包括Silverlight插件),我认为VS并不聪明,因为他们意识到Silverlight在它启动的过程中没有运行。您可以手动将VS调试器附加到插件容器进程,但是(如果我的内存正确地为我服务),我没有发现它总是可靠的。在将我的机器的默认浏览器切换到IE后,我确实发现调试更加可靠。
另外,在您对Detroitpro的回答的评论中,您写了
它告诉我在连接浏览器之前没有加载任何符号,所以我不认为那是[...]
如果您在浏览器中启动Silverlight应用程序之前放置了断点,那么您可能会得到一个“没有加载符号”的信息。信息。当您开始调试时,Visual Studio将启动ASP.NET开发服务器,以提供包含您的Silverlight应用程序的HTML页面,如果没有更多。没有符号'消息意味着VS无法找到将断点放入其调试器所连接的任何进程中的类。 (此时,VS调试器附加的唯一进程是ASP.NET dev服务器。)打开浏览器以查看包含Silverlight应用程序的页面,并将VS调试器连接到运行Silverlight插件的进程,它应该摆脱“没有符号”#39;消息。
最后,另一种判断VS调试器是否已连接到运行代码的进程的方法是调出模块窗口(Debug> Windows> Modules)。如果您的应用的DLL不在模块列表中,那么您将获得“未加载任何符号”的信息。如果您尝试在应用程序的代码中添加断点,则会显示错误消息。
答案 1 :(得分:3)
你必须将Firefox的插件容器附加到调试过程, 因为Firefox不再在主进程中运行任何插件。
转到调试 - >附加到流程... - >搜索Plugin-Container并点击Attach按钮。
现在调试应该再次运行。
答案 2 :(得分:2)
以下是使用Internet Explorer 9的功能
使用Ctrl-F5启动项目。
使用调试菜单附加到浏览器进程。
停止该项目。
使用F5运行项目。
答案 3 :(得分:1)
当调试在Firefox中无效时,这个解决方案对我有用:
答案 4 :(得分:0)
几个星期前我遇到了这个样本问题;那时我才知道Firefox和Chrome都有错误导致他们无法调试silverlight。此外,请确保您使用的是较新版本的IE。有一些IE的随机中间版本也无法正确加载。
答案 5 :(得分:0)
点击debug->例外并检查.net例外附近的抛出复选框。
答案 6 :(得分:0)
作为上述答案的补充,我发现您可以通过右键单击项目并转到“属性”来启动浏览器之外的应用程序。然后在Silverlight选项卡中选择勾选框并在浏览器中启用正在运行的应用程序'。它现在应该可以达到您设置的断点,而无需更改默认浏览器或附加到特定流程。