Компонент С# не обновляется при обновлении исходного кода

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

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

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

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

ОБНОВЛЕНИЕ 2 http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

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

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

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

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

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

Как видите, старый "скомпилированный" компонент показывает желтый фон, но когда я вставляю новый компонент (с левой панели инструментов в Visual Studio), у меня может быть новый компонент с предполагаемым БЕЛЫМ фоном...


person Patrick Desjardins    schedule 17.09.2008    source источник
comment
Являются ли ссылки ссылками на проекты (все проекты должны быть в одном решении или ссылках на DLL? Ссылки на проекты не должны отображать эту проблему.   -  person Gishu    schedule 17.09.2008


Ответы (5)


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

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

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

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

person Sean Hanley    schedule 17.09.2008
comment
Проект, содержащий пользовательский компонент, находится в том же решении, что и другой проект, в котором он используется. Ссылка по проекту. - person Patrick Desjardins; 19.09.2008

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

person Mitchel Sellers    schedule 17.09.2008

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

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

person viggity    schedule 17.09.2008

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

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

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

person mmattax    schedule 17.09.2008

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

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

person Rune    schedule 17.09.2008