建议在 .NET Core 2 中使用 Microsoft.AspNetCore.All
,因为它可以简化依赖关系并使用 Tree Shaker 魔法来避免发布的内容膨胀。
我在迁移到它时遇到了一个问题:当使用引用 StackExchange.Redis
的库时,我最终遇到了 Microsoft.AspNetCore.All
中的冲突引用StackExchange.Redis.StrongName。查看问题VS.NET 2017 forces using StackExchange.Redis 1.2.4.0 in ASP.NET 2.0 Core app欲了解更多信息。如果我坚持单独引用依赖项,那么我可以避免这种冲突并且可以编译。
除了在 Microsoft.AspNetCore.All
中不使用的内容之间发生冲突之外,由于此建议,您可能会遇到哪些其他问题?
最佳答案
恕我直言,这不是一个常见的问题,因为没有多少库在两个不同的包中以相同的类型发布两次:一个是强命名的,另一个不是。特别是被元包 Microsoft.AspNetCore.All 2.0.0
您绝对不是唯一遇到此 StackExchange.Redis
问题的人(我已经两次偶然发现了它),但维护者正计划 drop the StrongName
package on version 2.0 .
您可以尝试使用讨论的extern alias
方法来处理它 here 。
解决这个问题的一种快速方法是将相同的包 AspNetCore 目标(StrongName 包)作为目标。如果它只是您使用的解决方案中的一个项目,那么这是一个简单的技巧。
另一个目标是Microsoft.Extensions.Caching.Redis
。这就是元包所依赖的。
直到 SE.Redis 发布 2.0.0 版本为止。
关于.net-core - 在 .NET Core 2 中使用 Microsoft.AspNetCore.All 时可能会遇到哪些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46727322/