在一个项目中,我新建了一个WpfControlLibrary1的类库项目。
在主项目的Properties.Settings.settings中新建一个设定项,可以找到UserControlLibrary1这个类却找不到Class2这个类。
经常发现这样的问题,有的类可以在“选择类型”对话框中找到,但是有的又找不到,请问是怎么回事?
你好 Neo Xiao:
我测试了你的程序,发现确实有一个类找不到,但当我把所有的生成文件夹bin全部删掉之后再重新生成,就可以了。
你好NeoXiao:
你的Class2是不是Public的?
在VS中,新建的C#类默认可访问性是internal,即程序集内可访问,并且默认的internal会被省略。
即:
class A{} //等同于 internal class A{}
如果你需要在程序集外部访问该类,可以尝试使用public 修饰:
public class A{}
你好NeoXiao: 你的Class2是不是Public的? 在VS中,新建的C#类默认可访问性是internal,即程序集内可访问,并且默认的internal会被省略。 即: class A{} //等同于 internal class A{} 如果你需要在程序集外部访问该类,可以尝试使用public 修饰: public class A{}
我这边并没有发现这个问题,你是不是需要重新生成一下整个解决方案。
http://feiyun0112.cnblogs.com/
我写了个demo放在百度盘上
http://pan.baidu.com/s/1dEQuUTr
其中wpfCustomControlLibrary1可以找到ClassLibrary1中的Class1.
而且wpfApplication1可以找到wpfControlLibrary的UserContral1.
但是却找不到WpfControlLibrary1中的Class1和ClassLibrary1中的Class1
同样的一个类被不同项目引用后,有的能找到,有的不能。
反复删除bin和obj再启动解决方案几次才成功。
现在还不清楚这是什么原因造成的?是VS的Bug?在VS2010的时候就发现这个问题,VS2013和2015都是的。
你好 NeoXiao:
我测试的时候是:先删除所有的bin,然后再重新生成(rebuild)解决方案,一次成功。
这应该是VS的Bug,还有其他类似的Build过程的Bug。
其实也可以直接在配置文件里添加新项,可能UI上有问题。