3

我在 C# 解决方案中使用 JetBrains 注释。我已将注释类作为链接文件引入到解决方案的每个项目中。我不希望 JetBrains 注释成为我的公共接口的一部分,所以我将它们修改为内部而不是公共的。

但是,当我编译时,我会收到很多警告 CS0436,例如:

C:\src\foo\bar.cs(12,29): 警告 CS0436: 'C:\src\Common\JetBrains\JetBrains.cs' 中的类型 'JetBrains.Annotations.NotNullAttribute' 与导入的类型 'JetBrains' 冲突'c:\src\blah\bin\Debug\blah.dll' 中的 .Annotations.NotNullAttribute'。使用“C:\src\Common\JetBrains\JetBrains.cs”中定义的类型。

但在 JetBrains.cs 中,NotNullAttribute 是内部的:

internal sealed class NotNullAttribute : Attribute { }

我不明白为什么编译器会警告导入另一个程序集内部的类型。有任何想法吗?

4

2 回答 2

5

我遇到了同样的问题,因为在 References 文件夹中有对同一个项目的引用。即:我的项目名称是 Store 并且引用具有相同的名称。我删除了它并解决了问题!祝你好运

于 2013-09-21T18:20:10.283 回答
2

发现了问题。我提到的“blah.dll”程序集在它的 AssemblyInfo.cs 中有这个:

[assembly: InternalsVisibleTo("my.other.assembly")]

感谢大家的意见和建议。

于 2013-02-06T19:08:30.900 回答