Событие клика WPF дважды запускается под определенной средой сборки - PullRequest
0 голосов
/ 01 июля 2010

Мы сталкиваемся со странной проблемой.У нас есть пользовательский элемент управления, написанный на WPF, и мы добавили обработчик события click в файл xaml.В локальной системе все работает как положено.Но когда сборка генерируется на сервере (где у нас есть хранилище кода), мы замечаем, что в результирующей сборке есть ошибка.Ошибка в том, что событие click генерируется дважды каждый раз для этого элемента управления.Мы используем OpenFileDialog в функции обработчика событий для просмотра изображений.Мы заметили, что для сборки локальной системы через VS для сборки используется CSC.exe, а на сервере мы используем MSBuild.exe.Поэтому мы попытались собрать с использованием MSBuild и в нашей локальной системе.Но ошибка не воспроизводится в локальной системе.Сборка кода на серверной системе с использованием VS также не воспроизводит ошибку.Поэтому единственный способ воспроизвести ошибку - это создать автоматическую сборку на сервере.Мы попытались сравнить код IL обоих библиотек (с ошибками и без ошибок).Мы проверили код IL для функции обработчика событий.Код IL идентичен.

Я не подозреваю, что наш код, так как ошибка не воспроизводится в нашей локальной системе ни при каких обстоятельствах.Пожалуйста, дайте мне знать, если вам нужно больше информации / деталей.

Любая помощь будет оценена.

Спасибо, Мишал

Ответы [ 2 ]

1 голос
/ 01 июля 2010

(VS использует MSBuild.)

В VS, установите

Инструменты \ Параметры \ Проект и решения \ Построить и запустить \ Детализация вывода проекта MSBuild

в «диагностику», затем очистите проект, соберите его и запишите журнал из окна вывода.

Сравните с выводом команды "msbuild.exe / v: diag ..." на сервере.

Надеюсь, что это найдет источник несоответствия.

0 голосов
/ 20 июля 2010

Кстати, это было «исправлено» (обходной путь) довольно легко. Ошибка исчезает, если обработчик события нажатия кнопки добавляется из кода, а не из XAML: | Я считаю, что это может быть ошибка MS в загрузчике XAML. Я не уверен, что другие тоже сталкиваются с этим, но мы активно сталкиваемся с этой ошибкой более чем в 2 местах. Единственная недостающая ссылка - при каких обстоятельствах появляется ошибка. До сих пор мы видели это только для кнопки. Не уверен, где еще это появляется

...