我只对开发期间使用Jetbrains annotations感兴趣,并且我在nuget package.config文件中相应地标记了它:
200
我正在使用此工具提示我正在尝试使用的属性,例如 <package id="JetBrains.Annotations" version="10.2.1" targetFramework="net452" developmentOnly="true"/>
:
如果我引用了Jetbrains.Annotations库,为什么还需要定义这个条件?
答案 0 :(得分:3)
如果您定义JETBRAINS_ANNOTATIONS
符号,您的注释属性用法将被编译到您的程序集中(程序集的使用者可以从中受益)。但是你获得了Jetbrains.Annotations
的汇编引用。 (=&gt;当您在项目上执行developmentOnly
时,不应将包引用定义为nuget pack
以自动将其作为依赖性引用。)
如果您没有对其进行定义,那么程序集使用者就无法使用程序集的注释,并且您不会依赖Jetbrains.Annotations
。
有关详细信息,请参阅ReSharper Help。
长话短说:如果您是应用程序作者,只需引用该包,而不定义其符号;如果您是图书馆作者,请不要将其引用为developmentOnly
并定义该符号(或将您的代码作为internal
分发注释,例如described here)。
BTW:如果你想要第二个没有条件定义的NuGet包,请投票给RSRP-432171。