Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么一个项目中的公共类型对其他项目不可见?_C#_.net_Types_Import - Fatal编程技术网

C# 为什么一个项目中的公共类型对其他项目不可见?

C# 为什么一个项目中的公共类型对其他项目不可见?,c#,.net,types,import,C#,.net,Types,Import,我有一个项目XTime.Sephaku.GenSync.Plugin,它将SAP IDocs转换为我们的内部数据库结构。它构建得很好,如果我把它的类放到一个控制台应用程序中,这个应用程序运行得很好,所以插件代码也很好 然后我有了控制台项目Tester,它引用了插件XTime.Sephaku.GenSync.plugin*中的输出程序集。它在插件中看不到任何公共类型,尽管该程序集是新构建的,并且公共类型在对象浏览器中都可见。我使用语句复制并粘贴了的名称空间,以确保没有输入错误。名称空间和公共类型在

我有一个项目XTime.Sephaku.GenSync.Plugin,它将SAP IDocs转换为我们的内部数据库结构。它构建得很好,如果我把它的类放到一个控制台应用程序中,这个应用程序运行得很好,所以插件代码也很好

然后我有了控制台项目Tester,它引用了插件XTime.Sephaku.GenSync.plugin*中的输出程序集。它在插件中看不到任何公共类型,尽管该程序集是新构建的,并且公共类型在对象浏览器中都可见。我使用语句复制并粘贴了
的名称空间,以确保没有输入错误。名称空间和公共类型在dotPeek的反编译代码中也是可见的

这就像有东西告诉XTime.Sephaku.GenSync.Plugin不要让其他项目使用它的类型


***请参阅my,了解我为什么不引用项目,而是引用程序集。

将我的注释转换为答案:

您的Tester项目的.NET版本不能高于引用的插件。
您需要确保引用项目的.Net版本等于或高于插件的版本


您可以详细了解它

您尝试访问的所有类都是公共的吗?不仅仅是会员,对吗?请记住,如果未设置为public,则类默认为private。控制台项目“tester”中的程序集XTime.Sephaku.GenSync.Plugin您能在ILDASM中打开该程序集并向我们显示它的快照吗?
Tester
项目是否有一个较新版本的.NEt引用插件?@Jite类默认为
internal
而不是
private
。仅供参考,即使您明确指定,也不能将命名空间成员设置为私有或受保护。@SriramSakthivel感谢您的澄清,很高兴知道。但它仍然会给出相同的问题,所以问题依然存在!;)尽管今天添加了VS 2013,但tester项目的版本较低。我甚至不知道有一个4.5.1,这是插件版本。