XAML не обновляется при отладке на устройстве WP8

У меня возникла проблема при развертывании на устройстве Windows Phone 8. Кажется, что XAML не обновляется, когда я выполняю сборку и отладку. Единственный способ, которым он обновляется, - это когда я делаю Rebuild> Debug или удаляю приложение, а затем отлаживаю.

Вот сценарий: страница содержит кнопку с событием щелчка с именем «Button_Click». Отлаживаю и все работает. Остановить отладку. Теперь измените имя обработчика событий на NewButton_Click (да, и в xaml, и в cs). Запустите отладку снова, нажмите кнопку, и вы получите исключение, потому что нет имени обработчика события «Button_Click».

Изменения XAML не были обнаружены/перенесены на устройство, были обнаружены только изменения Csharp.

Если вы выполните Rebuild, а затем отладку, он будет работать так, как ожидалось. Пересборка каждый раз, когда мне не нужно развертывать, — это PITA, потому что я теряю любое изолированное хранилище.

Кто-нибудь может прояснить, что здесь происходит?

ПРИМЕЧАНИЕ. Это происходит с приложением Windows Phone 7.x в Visual Studio 2012 с обновлением 3 в Windows 8.


person Lance McCarthy    schedule 30.07.2013    source источник
comment
У меня тоже есть эта проблема. Хотя никогда особо в это не вникал.   -  person steveg89    schedule 30.07.2013
comment
Я только что попробовал это на своем рабочем столе, и я не могу воспроизвести его. Использование WP8, VS 2012, обновление 3   -  person Hermit Dave    schedule 30.07.2013
comment
Я использую ту же установку. Windows 8, WP8, VS 2012 Ultimate Update 3   -  person steveg89    schedule 30.07.2013
comment
Пробовал чистый проект WP71 и не может его воспроизвести   -  person Hermit Dave    schedule 30.07.2013
comment
Это приложение WP7, изначально созданное с помощью VS2010. Кажется, этого не происходит с недавно созданными приложениями.   -  person Lance McCarthy    schedule 30.07.2013
comment
Может быть, это как-то связано с настройками проекта или что-то, что вы можете сделать, чтобы привести его в это состояние? Проблема возникла только с одним из моих проектов, но это было приложение WP8.   -  person steveg89    schedule 30.07.2013
comment
Я создал другую реплику.. WP 7.1 VS 2010, проверено.. работает. Открыл его в VS2012 и проверил, все еще работает (переименование дескриптора события после каждого теста).   -  person Hermit Dave    schedule 30.07.2013


Ответы (3)


Содержит ли имя проекта (или папка, в которой он находится) какие-либо пробелы? В моем случае удаление пробелов решило проблему.

person Matt    schedule 23.01.2014
comment
какой метод вы использовали для замены пробелов? Найти и заменить? Пришлось ли вам также изменить пространство имен по умолчанию для проекта? - person Lance McCarthy; 13.02.2014
comment
Я думаю, это просто папка. Поэтому просто скопируйте свой проект во что-то вроде D:\Projects\{NameWithoutSpace}. Это сработало довольно хорошо. Это был, наверное, самый раздражающий баг, который у меня когда-либо был :/ - person Matt; 14.02.2014

Я заметил аналогичные проблемы с образцами проектов от Microsoft. Используете ли вы какие-либо странные символы в пути к файлу, такие как «#»? C# просто сломает сборку. Кроме того, вы можете попробовать удалить файлы suo.

Если ничего не помогло, откройте файлы /obj/Debug/.../.g.cs и .g.i.cs. Visual Studio должна попросить вас перезагрузить их, если они изменятся.

person Sean Sparkman    schedule 12.02.2014
comment
в моем случае странным символом был пробел, я не помню, чтобы это происходило раньше, но у меня не было пробелов в именах моих решений с WP7 :) - person Lance McCarthy; 13.02.2014

Это проблема не только Windows Phone. У меня была такая же проблема и в приложениях WPF. Этот Статья MSDN довольно хорошо описывает это для файлов XAP.

Вот предложения:

• Для целевого XAP-файла правильно установлено значение только для чтения (версия программного обеспечения с исходным кодом)

• Возникало ли в вашей среде исключение переполнения памяти во время компиляции?

• Связан ли ваш проект Silverlight с веб-приложением в решении? Если не попытаться сделать это; Если да...

• Вы компилируете только проект Silverlight или Интернет?

• Убедились ли вы, что у вас нет проблем с кэшированием в вашем браузере И/ИЛИ IIS или веб-узле?

• Использовался ли XAP-файл Silverlight в этот конкретный момент?

Решение, которое решило проблему OP в этой статье, заключалось в установке обновленной версии Silverlight для VS.

person Anthony Russell    schedule 30.07.2013