Pergunta

Eu tenho uma solução com muitos projetos. Um projeto contém alguns componentes personalizados. Um desses componentes é utilizado para apresentar um título em uma imagem. Nós podemos mudar a cor do fundo e muitas outras coisas.

O problema é se eu decidir mudar a cor padrão do fundo do componente ou alterar a posição do texto, thoses mudança não irá refletir em todos os outros projetos da solução onde o componente é usado. Tenho compilent o projeto do componente e todos os outros projectos de referência o componente do projeto.

No momento, o que eu tenho a fazer é retirar o componente do outro projeto por um e adicioná-lo novamente, então está tudo bem. Você tem uma maneira rápida de fazê-lo?

Atualizar Eu adicionei um CheckBox dentro desse componente e parece que a caixa está em toda parte! Bem! Mas quando uma propriedade tem um pouco tag que deixar o componente para a mudança (exemplo como a cor do fundo) não alterar o valor "default", mas, em vez colocar o valor antigo como um valor alterado na propriedade. Então, eu vejo o valor antigo setado como se eu adicionar manualmente alterado a cor no painel Propriedades quando não tenho ...

UPDATE 2 texto alt http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

Update 3:

Este problema ainda está aqui. Só para que as pessoas saibam que eu ainda estou curioso para encontrar um caminho.

Eu tentei algumas de suas sugestões.

  1. Se eu limpar toda a solução e construir somente o projeto que tem o controle personalizado, então eu criar a solução. mudança nada (Para testá-lo, eu tenho mudar a cor do componente a Yellow mudança nada:.. falha
  2. Se eu remover a referência e adicioná-lo de volta para o projeto e, em seguida, recriar a solução. Eu posso ver a cor antiga no designer:. falha

Eu atualizei a questão com mais informações e uma imagem (acima) para aqueles que querem tentar me ajudar.

Como você pode ver, o velho "compilação" do show componente do Fundo amarelo, mas quando eu inserir um novo componente (a partir da barra de ferramentas à esquerda no Visual Studio) eu posso ter o novo componente com o fundo branco suposto .. .

Foi útil?

Solução

Este é provavelmente devido a referências .

Seus outros projetos provavelmente copiar em um referência ao seu projeto componente. Você vai ter que reconstruir esses outros projetos para que eles re-cópia no projeto componente referenciado, se ele mudou. Ele só é atualizado em tempo de compilação.

Você pode tanto contornar esta situação, tendo-lhes parte da mesma solução. Nesse caso, você pode configurar o projeto dependências corretamente e deve lidar com as coisas para você na maioria automaticamente. Mas ter tudo na mesma solução nem sempre é a coisa certa a fazer.

Se você já tê-los parte da mesma solução ou não é um problema referências, pode ser devido a serialização componente . Nós passar por essa peculiaridade muito quando fazendo o desenvolvimento de controle personalizado.

Outras dicas

Meu palpite é que o designer é inteligente e lembra as configurações para o componente que você tê-lo no designer e, portanto, vê-lo como padrão.

Isso não parece normal. botão direito sobre a solução e bater "Clean Solution" ajuda poder (ele irá apagar todas as DLLs e executáveis ??a partir do diretório bin de cada projeto, que forças fresco constrói a ocorrer)

Você também pode querer verificar a sua seqüência ordem de construção.

Eu trabalho em um projeto que tem um problema semelhante, eu descobri que se você tocar o arquivo .NET configuração ou montagem arquivo de informações (dependendo do tipo de projeto). Os outros projetos, então, refletir a mudança componente ...

Eu não tenho certeza por que isso acontece, mas é assim que eu vencê-lo ...

Recentemente eu tenho chave para a construção de tudo via Nant, e que cuida do problema completamente.

Às vezes o Designer serialize Visual todas as suas propriedades no código-behind, mesmo se eles têm o valor padrão.

Se o componente tem uma backcolor padrão de Red, e você alterar o backcolor padrão para azul, os componentes que usam o componente irá mudá-lo de volta ao vermelho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top