Компонент C # не обновляется при обновлении исходного кода - PullRequest
1 голос
/ 17 сентября 2008

У меня есть решение со многими проектами. Один проект содержит несколько пользовательских компонентов. Один из этих компонентов используется для отображения заголовка на изображении. Мы можем изменить цвет фона и многое другое.

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

На данный момент, что мне нужно сделать, это вынуть компонент из другого проекта один за другим и добавить его обратно, тогда все в порядке. У вас есть быстрый способ сделать это?

UPDATE Я добавил CheckBox внутри этого компонента, и кажется, что флажок везде! Отлично! Но когда свойство имеет некоторый тег, который позволяет компоненту изменяться (например, цвет фона), он не меняет значение «по умолчанию», а вместо этого помещает старое значение в качестве измененного значения в свойстве. Итак, я вижу старое значение, установленное, как если бы я добавил вручную изменил цвет на панели свойств, когда я не ...

ОБНОВЛЕНИЕ 2 альтернативный текст http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

Обновление 3:

Эта проблема все еще здесь. Просто чтобы люди знали, что мне все еще интересно найти способ.

Я испробовал несколько ваших предложений.

  1. Если я очищу все решение и соберу только проект с пользовательским элементом управления, то я построю решение. Ничего не меняется (Чтобы проверить это, я изменил цвет компонента на Желтый. Ничего не изменилось: сбой .
  2. Если я удалю ссылку и добавлю ее обратно в проект, а затем пересоберу решение. Я вижу старый цвет в конструкторе: сбой .

Я обновил вопрос, добавив больше информации и изображения (выше) для тех, кто хочет помочь мне.

Как вы можете видеть, старые «компиляции» компонента показывают желтый фон, но когда я вставляю новый компонент (из левой панели инструментов в Visual Studio), я могу иметь новый компонент с предполагаемым белым фоном .. .

Ответы [ 5 ]

1 голос
/ 17 сентября 2008

Это, скорее всего, связано с ссылками .

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

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

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

0 голосов
/ 17 сентября 2008

Иногда Visual Designer сериализует все ваши свойства в коде, даже если они имеют значение по умолчанию.

Если ваш компонент имеет задний цвет по умолчанию Красный, и вы измените задний цвет по умолчанию на Синий, компоненты, использующие ваш компонент, изменит его обратно на Красный.

0 голосов
/ 17 сентября 2008

Я работаю над проектом, в котором есть похожая проблема, я обнаружил, что если вы коснетесь файла конфигурации .NET или файла информации о сборке (в зависимости от типа вашего проекта). Другие проекты будут отражать изменение компонента ...

Я не уверен, почему это происходит, но так я это преодолеваю ...

Недавно я переключился на сборку всего через Nant, и это полностью решает проблему.

0 голосов
/ 17 сентября 2008

Звучит не так, как обычно. Если щелкнуть правой кнопкой мыши по решению и нажать «Чистое решение», это может помочь (оно удалит все dll и исполняемые файлы из каталога bin каждого проекта, что приведет к новым сборкам)

Возможно, вы также захотите проверить последовательность порядка сборки.

0 голосов
/ 17 сентября 2008

Я предполагаю, что дизайнер умен и запоминает настройки компонента, как они есть в конструкторе, и, таким образом, видит их как настройки по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...