在同一项目中创建由其他用户控件组成的用户控件时出现警告和错误(CS0436,CS0234)

时间:2011-02-11 12:12:49

标签: winforms visual-studio visual-studio-2010

我正在开发一个包含许多winform ui项目的Windows窗体解决方案。 有一个类库项目,其中包含一些名为MyControls的自定义共享控件。

现在,当我在MyControls中创建一个控件时 由同一个项目中的一个或多个控件组成,我遇到了问题。

我得到编译警告:警告CS0436:'path-to \ MyType.cs'中的类型'MyType'与'MyControls.dll'中导入的类型'MyType'冲突。使用'path-to \ MyType.cs'中定义的类型。或者我得到一堆不同的编译错误,都指向“MyControls.dll”(错误CS0234 - “你错过了程序集引用吗?”)。

我得到错误或警告,从来没有。

如何解决这个问题?

注意

我添加了,因为这是我遇到问题的版本。不知道这是否与其他版本有关。

3 个答案:

答案 0 :(得分:5)

我发现当我从MyControls项目中删除MyControls中另一个控件上的控件时,Visual Studio会向MyControls添加一个自引用:

<Reference Include="MyControls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" />

我目前的解决方法是使用文本编辑器从MyControls.csproj手动删除此引用。 当我完成此操作后,一切正常,直到我删除另一个触发自引用的控件。

赞赏更好的解决方案!

答案 1 :(得分:1)

您可以对解决方案进行小规模“合法”更改并获得“合法”解决方案......假设您的项目名称为:“project01” 转到项目中的references文件夹 - 您的一个名为“project01”的引用 - 只需删除它... 警告很公平!你设计一个表格,另一方面导入你的项目作为参考!

答案 2 :(得分:0)

我知道这个帖子有点旧,但我只是在寻找这个问题的解决方案,而且似乎除了Marijn之前建议的MS之外没有任何东西:

https://connect.microsoft.com/VisualStudio/feedback/details/613502/automatically-add-self-reference

希望它在VS 2012中得到修复。