在ClickOnce应用程序的调试中,“存储元数据”“CurrentBind”无效“

时间:2009-12-16 13:00:15

标签: .net exception clickonce

当我尝试访问“Application.CommonAppDataPath”时,收到以下错误消息:

  

System.Deployment:存储元数据   “CurrentBind”无效

堆栈追踪:

  

在   System.Deployment.Application.ComponentStore.GetPropertyString(DefinitionAppId   appId,String propName)

这仅适用于Debug。当作为实际发布的clickonce应用程序运行时,它可以正常工作。

如何在本地调试时摆脱此异常?

4 个答案:

答案 0 :(得分:33)

我有一个类似的问题(比如jpierson的评论),在ApplicationDeployment.IsNetworkDeployed上有相同的异常'“CurrentBind”无效'。我取消选中“选项|调试|常规|仅我的代码”。检查后,一切正常。

注意:其他一些讨论主题建议重新安装VS2010。我这样做但没有帮助。我不知道重新安装是否也是fator。

答案 1 :(得分:2)

我故意将VS设置为打破CLR异常。您当然可以通过仅调试代码来屏蔽此异常,但它仍然是我想要解释的有效错误。 MS应该是编写可靠代码的先行者。

答案 2 :(得分:1)

ApplicationDeployment.IsNetworkDeployed(在System.Deployment.Application命名空间中)是一个布尔属性,如果应用程序是使用ClickOnce启动的,则返回true

if (ApplicationDeployment.IsNetworkDeployed)
{
    //CommonAppPath code
}

您正在尝试使用CommonAppDataPath做什么?根据您要完成的任务,我们可能会提出一些无论应用程序如何启动都会有效的内容。

答案 3 :(得分:0)

我有完全相同的问题。感谢mkale指出我正确的方向。

我几天前安装了Reflector VS Addin,并且在某些时候它询问了有关更改Just My Code选项的问题。我完全忘了它,过去两天一直在搞乱这个问题!

与此同时,我也遇到了FileLoadException的问题 - 在Fusion日志中报告了“WRN:比较程序集名称导致不匹配:修订号”。最初我通过将程序集版本设置为1.1.0.0而不是1.1。*。

来解决该问题

然而,一旦设置了Just My Code选项,所有这些问题就消失了。