在本课中,您将学习如何修复 LightSwitch 应用程序中的 bug,然后将其重新发布。
测试应用程序
在上一课中,运行应用程序 向您展示如何安装并测试该应用程序。这一课还标识了**“联系人名单”屏幕上“查找”按钮中的 Bug。如果在“联系人”**实体中没有任何记录,则在单击该按钮时,会出现错误或“异常”。本课介绍如何调试该应用程序以找出错误,以及如何通过在 Button_Execute() 方法中添加代码以捕获异常并显示一条描述问题的消息来修复。
修复此错误
在**“解决方案资源管理器中”中,选择“屏幕”下的“联系人列表”**节点。
在**“项目”菜单上,单击“查看屏幕代码”**。
**“代码编辑器”**将出现,并显示 Find_Execute() 方法。
选择包含 Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) 的代码行,然后在**“调试”菜单上,单击“切换断点”**。
代码行将突出显示,红色断点标志符号将出现在左边距。
按 F5 运行应用程序,然后单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。
单击工具栏上的“查找”按钮。
**“代码编辑器”**将出现,并且会突出显示断点。
在**“调试”菜单上单击“逐语句”**。
说明
可能会出现对话框,其中显示有关自动逐过程的消息。单击“否”继续。
将出现**“NullReferenceException 未经用户代码处理”**的消息。
在**“调试”菜单上,单击“停止调试”**。
用下列代码替换 Find_Execute() 中的现有代码。
Try Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) Catch ex As Exception ShowMessageBox("Please select a contact to find") End Try
try { Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName); } catch (Exception ex) { this.ShowMessageBox("No contacts exist to be found"); }
如果发生异常,此代码将显示一条消息。
选择包含 Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) 的代码行,然后在**“调试”菜单上,单击“切换断点”**。
按 F5 再次再次运行应用程序,然后单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。
单击工具栏上的“查找”按钮。
**“代码编辑器”**将出现,并且会突出显示断点。
在**“调试”菜单上单击“逐语句”**。
请注意不会显示异常消息,而突出显示将移到下一行代码。
在**“调试”菜单上,再次单击“单步执行”**。
注意突出显示将移到 Catch 块中的代码行。
在**“调试”菜单上,第三次单击“单步执行”**。
出现应用程序窗口,并显示**“请选择要查找的联系人”**消息。
单击**“确定”**关闭该消息框。
**“代码编辑器”**将出现,并且将突出显示 End Try(C# 中的右大括号)代码。
按 F5 以继续运行应用程序,然后单击**“关闭”**按钮。
重新发布并测试应用程序
在**“解决方案资源管理器”中,双击“属性”**节点。
在**“应用程序设计器”的“常规”** 选项卡中,选择**“应用程序版本”**字段,并在第二个文本框中,键入 1001年。
在**“生成”菜单上单击“配置管理器”**。
将显示**“配置管理器”**对话框。
在**“活动解决方案配置”列表中,选择“发布”,然后单击“关闭”**。
在“生成”菜单上选择“发布我的首个应用程序”。
将出现LightSwitch“发布应用程序向导”。
在左侧窗格中,选择**“数据库配置”**。
**“数据库配置”**页将显示。
清除**“生成 SQL 数据库脚本”**复选框。
在左侧窗格中,选择**“身份验证”**。
此时将显示**“应用程序管理员”**页。
在**“指定身份验证配置”页上的“是否应使用应用程序部署身份验证信息?”部分,选择在“否,身份验证信息已部署”**。
说明
仅在首次发布应用程序时部署身份验证信息。如果您再次尝试部署相同的身份验证信息,则发布将失败,并且将显示“用户名已使用”消息。
单击“完成”以重新发布应用程序。
请等待,直到在状态栏中出现**“发布已成功”**消息。
在**“开始”菜单上,单击“Northwind 应用程序”**打开该应用程序。
将显示一条消息,该应用程序将自动更新为新版本。安装完成后,将出现**“Northwind 应用程序”**。
单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。
单击工具栏上的**“查找”按钮,并验证是否显示先前添加的“请选择要查找的联系人”**消息。
单击**“关闭”**按钮关闭应用程序。
详细了解
本课显示了如何调试、更新和重新发布应用程序。第一步是在 Find_Execute() 方法中设置断点。当应用程序运行后,它会刚好在断点代码行之前停止,以便您可以单步执行代码,并只执行是那一行。
这点,代码将停止执行,并显示**“空引用异常”**的消息。如果代码引用了不存在的对象,则 Null Reference Exception 会出现;在这种情况下,该对象是 SelectedItem 的 ContactName。
之后本课将显示如何通过添加 Try…Catch 块修复代码。在 Try…Catch 块中,将首先执行 Try 块中的代码。如果发生异常,将执行 Catch 块中的代码,在这种情况下,系统将向用户显示一个消息框。
在该课程展示完如何修复 bug 后,它会显示如何再次单步执行代码以验证异常已得到处理以及 Catch 块中的代码已执行,并显示消息框。将 Try…Catch 块添加到异常可能发生的任何位置的代码中是个不错的主意。
最后,这一课展示了如何更新**“应用程序版本”**号,然后重新发布应用程序。请注意当您安装了应用程序后,系统将不提示您安装所需的权限。第一次安装该应用程序获得权限,并无需进行更新。
后续步骤
在下一课中,您将学习如何使用应用程序中的管理功能。
下一课:担任应用程序管理员