【问题标题】:C# component do not refresh when source code updated更新源代码时 C# 组件不刷新
【发布时间】:2010-09-10 07:05:24
【问题描述】:

我有很多项目的解决方案。一个项目包含很少的自定义组件。这些组件之一用于在图像上显示标题。我们可以改变背景的颜色和许多其他的东西。

问题是如果我决定更改组件背景的默认颜色或更改文本的位置,这些更改不会反映在使用该组件的解决方案的所有其他项目中。我已经编译了组件的项目和所有其他项目通过项目引用组件。

目前,我要做的就是将另一个项目中的组件一个接一个地取下来,然后将其添加回来,那么一切都很好。你有快速的方法吗?

更新 我在该组件中添加了一个 CheckBox,似乎该复选框无处不在!美好的!但是,当一个属性有一些标签可以让组件更改(例如背景颜色)时,它不会更改“默认”值,而是将旧值作为更改后的值放入属性中。所以,如果我没有在属性面板中手动添加更改颜色时,我会看到旧值设置...

更新 2 alt text http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

更新 3:

这个问题仍然存在。只是为了让人们知道我仍然很想找到一种方法。

我尝试了您的一些建议。

  1. 如果我清理所有解决方案并仅构建具有自定义控件的项目,那么我将构建解决方案。没有任何变化(为了测试它,我将组件的颜色更改为黄色。没有任何变化:失败
  2. 如果我删除引用并将其添加回项目,然后重建解决方案。我可以在设计器中看到旧颜色:失败

我已经更新了问题,为那些想要帮助我的人提供了更多信息和图片(上图)。

如您所见,组件的旧“编译”显示黄色背景,但是当我插入一个新组件(从 Visual Studio 的左侧工具栏)时,我可以让新组件具有假定的白色背景.. .

【问题讨论】:

  • 引用是否是项目引用(所有项目必须在同一个解决方案或 DLL 引用中?项目引用不应显示此问题。

标签: c# .net custom-component


【解决方案1】:

我的猜测是设计师很聪明,并且会记住您在设计器中的组件设置,因此将其视为默认设置。

【讨论】:

    【解决方案2】:

    这听起来很不寻常。右键单击解决方案并点击“清洁解决方案”可能会有所帮助(它将从每个项目的 bin 目录中删除所有 dll 和可执行文件,这会强制进行新的构建)

    您可能还想检查构建顺序。

    【讨论】:

      【解决方案3】:

      这很可能是由于 references

      您的其他项目可能 copy in a reference 到您的组件项目。您必须重建这些其他项目,以便它们在引用的组件项目中重新复制(如果它已更改)。它仅在构建时更新。

      您可以通过让它们成为同一解决方案的一部分来解决这个问题。在这种情况下,您可以正确设置您的 project dependencies,它应该会自动为您处理事情。但将所有内容都放在同一个解决方案中并不总是正确的做法。

      如果您已经将它们作为同一解决方案的一部分,或者这不是参考问题,则可能是由于 component serialization。在进行自定义控件开发时,我们经常遇到这种怪癖。

      【讨论】:

      • 包含自定义组件的项目与使用它的其他项目在同一个解决方案中。参考是按项目。
      【解决方案4】:

      我在一个有类似问题的项目上工作,我发现如果您触摸 .NET 配置文件或程序集信息文件(取决于您的项目类型)。然后其他项目将反映组件更改...

      我不确定为什么会发生这种情况,但这就是我克服它的方法......

      最近我已经切换到通过 Nant 构建所有东西,这完全解决了这个问题。

      【讨论】:

        【解决方案5】:

        有时,可视化设计器会序列化代码隐藏中的所有属性,即使它们具有默认值。

        如果您的组件的默认背景色为红色,并且您将默认背景色更改为蓝色,则使用您的组件的组件会将其更改回红色。

        【讨论】:

          猜你喜欢
          • 2021-08-30
          • 2018-12-12
          • 1970-01-01
          • 2012-01-09
          • 1970-01-01
          • 1970-01-01
          • 2021-07-14
          • 2010-09-20
          相关资源
          最近更新 更多