如果未定义JETBRAINS_ANNOTATIONS条件,则将忽略属性

时间:2016-12-22 18:28:19

标签: c# .net visual-studio nuget resharper

我只对开发期间使用Jetbrains annotations感兴趣,并且我在nuget package.config文件中相应地标记了它:

200

我正在使用此工具提示我正在尝试使用的属性,例如 <package id="JetBrains.Annotations" version="10.2.1" targetFramework="net452" developmentOnly="true"/>

enter image description here

如果我引用了Jetbrains.Annotations库,为什么还需要定义这个条件?

1 个答案:

答案 0 :(得分:3)

如果您定义JETBRAINS_ANNOTATIONS符号,您的注释属性用法将被编译到您的程序集中(程序集的使用者可以从中受益)。但是你获得了Jetbrains.Annotations的汇编引用。 (=&gt;当您在项目上执行developmentOnly时,不应将包引用定义为nuget pack以自动将其作为依赖性引用。)

如果您没有对其进行定义,那么程序集使用者就无法使用程序集的注释,并且您不会依赖Jetbrains.Annotations

有关详细信息,请参阅ReSharper Help

长话短说:如果您是应用程序作者,只需引用该包,而不定义其符号;如果您是图书馆作者,请不要将其引用为developmentOnly并定义该符号(或将您的代码作为internal分发注释,例如described here)。

BTW:如果你想要第二个没有条件定义的NuGet包,请投票给RSRP-432171