我正在开发一个包含许多winform ui项目的Windows窗体解决方案。
有一个类库项目,其中包含一些名为MyControls
的自定义共享控件。
现在,当我在MyControls
中创建一个控件时
由同一个项目中的一个或多个控件组成,我遇到了问题。
我得到编译警告:警告CS0436:'path-to \ MyType.cs'中的类型'MyType'与'MyControls.dll'中导入的类型'MyType'冲突。使用'path-to \ MyType.cs'中定义的类型。或者我得到一堆不同的编译错误,都指向“MyControls.dll”(错误CS0234 - “你错过了程序集引用吗?”)。
我得到错误或警告,从来没有。
如何解决这个问题?
注意的
我添加了visual-studio-2010,因为这是我遇到问题的版本。不知道这是否与其他版本有关。
答案 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中得到修复。