繁体   English   中英

额外的 nuget 依赖与新的 sdk 样式 csproj

[英]Additional nuget dependency with new sdk-style csproj

我曾经有 nuspec 用于我的图书馆。 在那里,我使用<dependency/>添加了 roslyn 分析仪 package 。 lib 本身不需要 package。 仅库客户端需要它。 现在我使用新的 sdk 风格的项目。 我看到,在那里添加 nuget 依赖项的唯一方法是使用<PackageReference/> 但这也会将 package 安装到 lib 本身。 在我的情况下,它破坏了项目,因为分析器仅为客户设计。 有什么方法可以强制客户使用 package,但避免使用 package。 我现在看到的唯一选择是使用 NuspecFile,但我想摆脱 nuspec。

我不认为,这对于包引用是可能的,因为它与依赖项的概念相矛盾。 如果您的项目不依赖于 package,那么它在设计上不是依赖项,特别是如果它仅由客户使用或不得包含在您的项目中。 是否使用 package是客户的责任

我想强制安装,因为它包含编译时检查以避免错误使用。

您的库不需要包含 package,因为没有依赖关系。 这是一个有助于避免错误使用的选项 我认为让客户自己选择会更合理,不管他们是否想使用 Roslyn 分析仪。 请记住,还有其他分析器,并不是每个人都可以使用你的,甚至想使用你的,但你可以在你的项目网站上推荐它。

您可以将未使用的依赖项添加到 NuSpec 文件的原因是 package 管理器无法知道 package 是否在任何地方使用,因为没有构建环境或编译器可以检查它。 这更像是一个设计漏洞,你可能不依赖它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM