Подтвердить что ты не робот

XamlParseException после развертывания проекта WPF

Я пытаюсь развернуть свое приложение WPF, я создал проект установки с помощью Мастера установки. Единственный выход проекта, который я добавил, был Primary. После создания и установки программы, как только я нажму на exe на своем рабочем столе, я получу всплывающее сообщение, в котором говорится: "Моя программа" перестала работать ", поэтому я нажимаю" Отладка программы ", и я вижу

Необработанное исключение типа "System.Windows.Markup.XamlParseException" произошло в PresentationFramework.dll

Дополнительная информация: 'Set connectionId выбрал исключение.' Номер строки "10" и позиция линии "9".

Это исключение не указывает мне ни в каком направлении относительно того, что исправить. в моем приложении нет "connectionId".

Ранее я использовал XAMLParseException из-за моего NotifyIcon для моего системного лотка, но это было исправлено добавлением значка к пути моего exe. Я подумал, что это может быть проблемой, поэтому я добавил значок в свой проект установки вместе со всеми другими выходами проекта. Все еще не работает.

Я знаю, что это неопределенная ошибка, но любая помощь вообще будет оценена, мое приложение не будет запускаться вообще. Спасибо!

4b9b3361

Ответ 1

Это обычно вызвано тем, что не все копии, скопированные на выход. Как вы говорите, сообщение об ошибке не очень полезно, но я бы проверял, что ваше приложение имеет все необходимые зависимости, доступные для разрешения разобранных типов.

Обычно достаточно установить Copy Local в значение true для ссылочных сборок, но я испытал некоторые случаи, когда ссылки сами ссылаются на сборки, поэтому может быть необходимо явно добавить эти ссылки.

Update:

Важное дополнение by @BENN1TH.

Если вы хотите увидеть, какая сборка необходима:

Получал тот же тип проблемы, как только я опубликовал и установил свой проект (отлично работал в отладке VS2013 Desktop, без ошибок и т.д.), но использовал совет из http://geekswithblogs.net/lbugnion/archive/2007/03/14/108728.aspx и проклятие! установленный проект работал.

try

{
  InitializeComponent();
}
catch ( Exception ex )
{
  // Log error (including InnerExceptions!)
  // Handle exception
}

Ответ 2

Уборка и восстановление решения могут помочь!

Ответ 3

У меня была эта проблема с решением WPF в VS2010. Решение содержало простую dll и тестовый проект (установленный для запуска) для тестирования dll. Моя dll была установлена ​​в x86, и мой тестовый проект был установлен на x64. Когда я изменил тестовый проект на x86, проблема была решена.

Ответ 4

Если вы получите это исключение в отладчике, проверьте член InnerException для исключения. Это может дать вам подсказку о том, какая сборка отсутствует.

Ответ 5

Получал тот же тип проблемы, как только я опубликовал и установил свой проект (отлично работал при отладке VS2013 Desktop, без ошибок и т.д.), но использовал совет из http://geekswithblogs.net/lbugnion/archive/2007/03/14/108728.aspx и проклятие! установленный проект работал.

try

{
  InitializeComponent();
}
catch ( Exception ex )
{
  // Log error (including InnerExceptions!)
  // Handle exception
}

Ответ 6

У меня просто были хорошие 4 часа, пытаясь понять это. Шахта не имела ничего общего с xaml! Оказалось, что это была небольшая ошибка в коде, стоящем за инициализацией MainWindow.

Если все остальное не удается, проверьте там

Ответ 7

Очистка и восстановление проекта не были эффективны для меня.

Вы можете попытаться удалить каталог bin, а затем перестроить, я решил эту проблему таким образом.

Ответ 8

У меня есть эта проблема. Эта проблема возникает из-за Microsoft.Expression.Drawing.dll, пожалуйста, загрузите dll и добавьте ссылку.

Ответ 9

Я столкнулся с этим, работая с несколькими DLL, запущенными внутри приложения, и эти DLL имеют разные версии одной и той же загруженной зависимости.

Мы обычно объединяем dll во время нашей сборки релиза, чтобы предотвратить эту проблему, но мы видим, что мы тестируем более одного набора несвязанных DLL во время цикла разработки.

Решение для тестирования только одного набора несвязанных DLL с использованием версий с объединенным выпуском для других DLL, которые не тестируются, или для обеспечения того, чтобы зависимая dll была одной и той же версией для обоих наборов.