更改应用程序并再次发布

在本课中,您将学习如何修复 LightSwitch 应用程序中的 bug,然后将其重新发布。

测试应用程序

在上一课中,运行应用程序 向您展示如何安装并测试该应用程序。这一课还标识了**“联系人名单”屏幕上“查找”按钮中的 Bug。如果在“联系人”**实体中没有任何记录,则在单击该按钮时,会出现错误或“异常”。本课介绍如何调试该应用程序以找出错误,以及如何通过在 Button_Execute() 方法中添加代码以捕获异常并显示一条描述问题的消息来修复。

修复此错误

  1. 在**“解决方案资源管理器中”中,选择“屏幕”下的“联系人列表”**节点。

  2. 在**“项目”菜单上,单击“查看屏幕代码”**。

    **“代码编辑器”**将出现,并显示 Find_Execute() 方法。

  3. 选择包含 Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) 的代码行,然后在**“调试”菜单上,单击“切换断点”**。

    设置断点

    代码行将突出显示,红色断点标志符号将出现在左边距。

  4. 按 F5 运行应用程序,然后单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。

  5. 单击工具栏上的“查找”按钮。

    **“代码编辑器”**将出现,并且会突出显示断点。

  6. 在**“调试”菜单上单击“逐语句”**。

    说明说明

    可能会出现对话框,其中显示有关自动逐过程的消息。单击“否”继续。

    将出现**“NullReferenceException 未经用户代码处理”**的消息。

  7. 在**“调试”菜单上,单击“停止调试”**。

  8. 用下列代码替换 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");
    }
    

    如果发生异常,此代码将显示一条消息。

  9. 选择包含 Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) 的代码行,然后在**“调试”菜单上,单击“切换断点”**。

  10. 按 F5 再次再次运行应用程序,然后单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。

  11. 单击工具栏上的“查找”按钮。

    **“代码编辑器”**将出现,并且会突出显示断点。

  12. 在**“调试”菜单上单击“逐语句”**。

    请注意不会显示异常消息,而突出显示将移到下一行代码。

  13. 在**“调试”菜单上,再次单击“单步执行”**。

    注意突出显示将移到 Catch 块中的代码行。

  14. 在**“调试”菜单上,第三次单击“单步执行”**。

    出现应用程序窗口,并显示**“请选择要查找的联系人”**消息。

  15. 单击**“确定”**关闭该消息框。

    **“代码编辑器”**将出现,并且将突出显示 End Try(C# 中的右大括号)代码。

  16. 按 F5 以继续运行应用程序,然后单击**“关闭”**按钮。

重新发布并测试应用程序

  1. 在**“解决方案资源管理器”中,双击“属性”**节点。

  2. 在**“应用程序设计器”“常规”** 选项卡中,选择**“应用程序版本”**字段,并在第二个文本框中,键入 1001年。

  3. 在**“生成”菜单上单击“配置管理器”**。

    将显示**“配置管理器”**对话框。

  4. 在**“活动解决方案配置”列表中,选择“发布”,然后单击“关闭”**。

  5. 在“生成”菜单上选择“发布我的首个应用程序”。

    将出现LightSwitch“发布应用程序向导”

  6. 在左侧窗格中,选择**“数据库配置”**。

    **“数据库配置”**页将显示。

  7. 清除**“生成 SQL 数据库脚本”**复选框。

  8. 在左侧窗格中,选择**“身份验证”**。

    此时将显示**“应用程序管理员”**页。

  9. 在**“指定身份验证配置”页上的“是否应使用应用程序部署身份验证信息?”部分,选择在“否,身份验证信息已部署”**。

    说明说明

    仅在首次发布应用程序时部署身份验证信息。如果您再次尝试部署相同的身份验证信息,则发布将失败,并且将显示“用户名已使用”消息。

  10. 单击“完成”以重新发布应用程序。

    请等待,直到在状态栏中出现**“发布已成功”**消息。

  11. 在**“开始”菜单上,单击“Northwind 应用程序”**打开该应用程序。

    将显示一条消息,该应用程序将自动更新为新版本。安装完成后,将出现**“Northwind 应用程序”**。

  12. 单击**“导航菜单”中的“联系人”菜单打开“联系人”**屏幕。

  13. 单击工具栏上的**“查找”按钮,并验证是否显示先前添加的“请选择要查找的联系人”**消息。

  14. 单击**“关闭”**按钮关闭应用程序。

详细了解

本课显示了如何调试、更新和重新发布应用程序。第一步是在 Find_Execute() 方法中设置断点。当应用程序运行后,它会刚好在断点代码行之前停止,以便您可以单步执行代码,并只执行是那一行。

这点,代码将停止执行,并显示**“空引用异常”**的消息。如果代码引用了不存在的对象,则 Null Reference Exception 会出现;在这种情况下,该对象是 SelectedItem 的 ContactName。

之后本课将显示如何通过添加 Try…Catch 块修复代码。在 Try…Catch 块中,将首先执行 Try 块中的代码。如果发生异常,将执行 Catch 块中的代码,在这种情况下,系统将向用户显示一个消息框。

在该课程展示完如何修复 bug 后,它会显示如何再次单步执行代码以验证异常已得到处理以及 Catch 块中的代码已执行,并显示消息框。将 Try…Catch 块添加到异常可能发生的任何位置的代码中是个不错的主意。

最后,这一课展示了如何更新**“应用程序版本”**号,然后重新发布应用程序。请注意当您安装了应用程序后,系统将不提示您安装所需的权限。第一次安装该应用程序获得权限,并无需进行更新。

后续步骤

在下一课中,您将学习如何使用应用程序中的管理功能。

下一课:担任应用程序管理员

请参见

概念

如何:部署 2 层应用程序

其他资源

分发应用程序

调试:查找和修复错误

部署:分发和维护应用程序