【问题标题】:Exception: Application identity is not set例外:未设置应用程序标识
【发布时间】:2013-10-26 01:06:04
【问题描述】:

我在尝试使用任何部署成员时遇到此异常,例如我尝试使用以下简单代码:

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    MsgBox(If(My.Application.Deployment.IsFirstRun, "Yes", "No"))

End Sub

End Class

异常消息:Application identity is not set

该异常发生在调试和发布中,在 VS2012 中,针对 Winforms 中的 FW 4.0。

我在这里读过:Application identity not set Exception

...还有这里:InvalidDeploymentException - Application identity is not set

我不记得如何在项目设置中停用异常检查,但无论如何有一种方法可以避免此异常,而无需手动禁用异常?

原因只是我不想手动禁用异常并记住为我存储的每个项目和未来的项目都这样做,我想以自然的方式解决这个问题。

【问题讨论】:

    标签: c# .net vb.net exception visual-studio-2012


    【解决方案1】:

    它是 ClickOnce 应用程序吗?是网络部署的吗?你在调试吗?这在调试模式下不起作用。

    如果你在调试,用这个来测试:

    If Not System.Diagnostics.Debugger.IsAttached Then
        firstRun = My.Application.Deployment.IsFirstRun
    End If
    

    -

    由于它不是网络部署的应用程序,我会检查该应用程序之前是否已启动,保存用户设置或在注册表中建立值。

    【讨论】:

    • 谢谢,但没有用,它在调试时发生,在不运行时,从 IDE 运行可执行文件并从发布文件夹运行已编译的 exe。
    • 它是一个简单的 WinForm,只是表单有我发布的代码。
    • 好的,它是一个 winform,但您是使用 IIS 作为 clickOnce 应用程序部署应用程序吗?
    • 尝试使用 Deployment.Application.ApplicationDeployment.CurrentDeployment.IsFirstRun,而不是 My.Application.Deployment.IsFirstRun。结果一样吗?
    • 我遇到了同样的异常
    【解决方案2】:

    您调用的方法仅适用于单击一次部署的应用程序。您必须将所有部署代码包含在 IF 中,如下所示:

    If System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed Then
    ...Your code here
    End If
    

    否则会出错。

    这确实使您的代码难以调试,因为它只会在部署时运行,但您应该创建一个带有消息框的测试应用程序以查看发生了什么。

    如果您不创建单击一次部署,请不要使用这些类!

    【讨论】:

    • 他回答我这不是网络部署的。它只是一种形式。我从他那里复制:这是一个简单的 WinForm,只是表单有我发布的代码,不再。 " 所以我放弃了你的答案
    • 谢谢@Steve,我刚刚读到该方法将帮助我们知道它是否是应用程序的第一次运行,但没有说它只适用于已部署的应用程序,有任何相当于知道 IsFirstRun 是否是“普通”应用程序?,我知道如何使用大量代码来编写带有布尔标志的注册表项,但我只是想知道这可以简化为一行。
    • @Electro Hacker,如果不部署网络,它将永远无法工作。这就是我问的原因!。使用用户设置或注册表项来管理应用程序之前是否启动过!。
    • 理解@Carlos Landeras,是我对类方法的使用感到困惑,我只是认为该方法适用于所有类型的应用程序
    • @ElektroHacker 不要删除它。也许另一个角色找到了 isFirstRun 并尝试在不知道是用于 NetworkDeployed 应用程序的情况下使用。可能有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2010-12-26
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2013-03-18
    • 2012-03-09
    相关资源
    最近更新 更多