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

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

目前,我要做的就是把另一个项目中的组件一一取下来,然后再添加回来,就万事大吉了。你有快速的方法吗?

更新我在该组件内添加了一个复选框,似乎该复选框无处不在!美好的!但是,当某个属性具有某个允许组件更改的标记(例如背景颜色)时,它不会更改“默认”值,而是将旧值作为属性中的更改值。因此,我看到设置的旧值就像我在“属性”面板中手动添加更改颜色一样,而我还没有...

更新2 替代文本 http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

更新3:

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

我尝试过你的一些建议。

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

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

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

有帮助吗?

解决方案

这很可能是由于 参考.

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

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

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

其他提示

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

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

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

我从事的一个项目也有类似的问题,我发现如果您触摸 .NET 配置文件或程序集信息文件(取决于您的项目类型)。其他项目将反映组件的变化......

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

最近我转而通过 Nant 构建一切,这完全解决了这个问题。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top