如果未定义 JETBRAINS_ANNOTATIONS 条件,则属性将被忽略
Attribute will be ignored if the JETBRAINS_ANNOTATIONS condition is not defined
我只对在开发期间使用 JetBrains annotations 感兴趣,并且我在 nuget package.config 文件中相应地做了标记:
<package id="JetBrains.Annotations" version="10.2.1" targetFramework="net452" developmentOnly="true"/>
我收到有关我尝试使用的属性的工具提示,例如 [NotNull]
:
引用了JetBrains.Annotations库,为什么还要定义这个条件?
如果您定义 JETBRAINS_ANNOTATIONS
符号,您的注释属性用法将被编译到您的程序集中(您的程序集的使用者可以从中受益)。但是您得到了对 Jetbrains.Annotations
的程序集引用。 (=> 您不应该将包引用定义为 developmentOnly
,以便在您对项目执行 nuget pack
时自动将其作为依赖项引用。)
如果您不定义它,程序集使用者将无法使用您的程序集的注释,并且您不会依赖于 Jetbrains.Annotations
。
详情见ReSharper Help。
长话短说:如果您是应用程序作者,只需引用包而不定义符号;如果您是库作者,请不要将其引用为 developmentOnly
并定义符号(或将注释与您的代码一起分发为 internal
,如 described here)。
顺便说一句:如果您想要第二个没有条件定义的 NuGet 包,请投票给 RSRP-432171。
我只对在开发期间使用 JetBrains annotations 感兴趣,并且我在 nuget package.config 文件中相应地做了标记:
<package id="JetBrains.Annotations" version="10.2.1" targetFramework="net452" developmentOnly="true"/>
我收到有关我尝试使用的属性的工具提示,例如 [NotNull]
:
引用了JetBrains.Annotations库,为什么还要定义这个条件?
如果您定义 JETBRAINS_ANNOTATIONS
符号,您的注释属性用法将被编译到您的程序集中(您的程序集的使用者可以从中受益)。但是您得到了对 Jetbrains.Annotations
的程序集引用。 (=> 您不应该将包引用定义为 developmentOnly
,以便在您对项目执行 nuget pack
时自动将其作为依赖项引用。)
如果您不定义它,程序集使用者将无法使用您的程序集的注释,并且您不会依赖于 Jetbrains.Annotations
。
详情见ReSharper Help。
长话短说:如果您是应用程序作者,只需引用包而不定义符号;如果您是库作者,请不要将其引用为 developmentOnly
并定义符号(或将注释与您的代码一起分发为 internal
,如 described here)。
顺便说一句:如果您想要第二个没有条件定义的 NuGet 包,请投票给 RSRP-432171。