gpt4 book ai didi

c# - JetBrains.Annotations 是否应该在我的 csproj 文件中声明为私有(private) Assets ?

转载 作者:太空宇宙 更新时间:2023-11-03 22:53:53 24 4
gpt4 key购买 nike

我最近安装了 ReSharper,并且正在重构我的一些 C# 解决方案。作为此过程的一部分,我在我的项目中添加了对 JetBrains.Annotations 的引用。但是,我不确定我是否应该将此依赖项标记为私有(private)(以防止它作为依赖项传递给更高级别的项目)或者这样做是否会破坏某些东西。

换句话说,我不确定我是否应该这样做:

<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="11.0.0" PrivateAssets="All" />
</ItemGroup>

或者只是这样:

<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="11.0.0" />
</ItemGroup>

来自NuGet package documentation :

All usages of ReSharper Annotations attributes are erased from metadata by default, which means no actual binary reference to 'JetBrains.Annotations.dll' assembly is produced.

如果我的理解正确,这表明将包标记为私有(private)应该是安全的。不过,我只是想确认一下。

最佳答案

If I'm understanding this correctly, it suggests that marking the package as private should be safe. However, I just want to confirm.

没错。这里有两件事在起作用;元数据引用(在程序集中)和 NuGet 包引用。

因为 JetBrains 注释是有条件地编译的(使用 [Conditional("JETBRAINS_ANNOTATIONS")]),只要你不定义 JETBRAINS_ANNOTATIONS,所有的痕迹注释将从程序集本身中删除。这也意味着删除 NuGet 包引用是安全的。

但是,如果您确实定义了JETBRAINS_ANNOTATIONS,您还应该包含 NuGet 包引用。

参见 the docs更多信息...

关于c# - JetBrains.Annotations 是否应该在我的 csproj 文件中声明为私有(private) Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com