"Сохранить метаданные" 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, все эти проблемы исчезли.