当我尝试访问“Application.CommonAppDataPath”时,收到以下错误消息:
System.Deployment:存储元数据 “CurrentBind”无效
堆栈追踪:
在 System.Deployment.Application.ComponentStore.GetPropertyString(DefinitionAppId appId,String propName)
这仅适用于Debug。当作为实际发布的clickonce应用程序运行时,它可以正常工作。
如何在本地调试时摆脱此异常?
答案 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选项,所有这些问题就消失了。