"Сохранить метаданные" CurrentBind "недействительно" при отладке приложения ClickOnce
Когда я пытаюсь получить доступ к "Application.CommonAppDataPath", я получаю это сообщение об ошибке:
System.Deployment: сохранить метаданные "CurrentBind" недействителен
Трассировка стека:
в System.Deployment.Application.ComponentStore.GetPropertyString(DefinitionAppId appId, String propName)
Это только в Debug. При запуске как действующего опубликованного приложения clickonce он отлично работает.
Как я могу избавиться от этого исключения при локальном отладке?
Ответы
Ответ 1
У меня была аналогичная проблема (например, комментарий jpierson) с тем же исключением. "CurrentBind" недействителен "на ApplicationDeployment.IsNetworkDeployed. Я снял флажки" Параметры | Отладка | Общие | Только мой код". После проверки все все отлично работало.
ПРИМЕЧАНИЕ. Некоторые другие потоки обсуждений предложили переустановить VS2010. Я сделал это, но не помог. Я не знаю, была ли переустановка также фатором.
Ответ 2
ApplicationDeployment.IsNetworkDeployed
(в пространстве имен System.Deployment.Application) является логическим свойством, которое возвращает true
, если приложение запущено с помощью ClickOnce.
if (ApplicationDeployment.IsNetworkDeployed)
{
//CommonAppPath code
}
Что вы пытаетесь сделать с CommonAppDataPath? В зависимости от того, что вы пытаетесь выполнить, мы могли бы придумать что-то, что будет работать независимо от того, как приложение будет запущено.
Ответ 3
Я намеренно устанавливаю VS для прерывания исключений CLR. Вы, конечно, можете замаскировать это исключение, только отлаживая свой код, но он по-прежнему является правильной ошибкой, о которой я хотел бы объяснить. MS должна быть предшественником при написании надежного кода.
Ответ 4
У меня была точно такая же проблема. Спасибо mkale за то, что указали мне в правильном направлении.
Я установил Reflector VS Addin несколько дней назад, и в какой-то момент он спросил об изменении параметра Just My Code. Я полностью забыл об этом и за последние два дня возился с этой проблемой!
В то же время у меня также возникла проблема с FileLoadException, которая сообщала в журнале Fusion, что "WRN: сравнение имени сборки привело к несоответствию: номер версии". Сначала я столкнулся с этой проблемой, установив версию сборки на 1.1.0.0 вместо 1.1. *.
Однако, установив параметр Just My Code, все эти проблемы исчезли.