.net 标准项目在运行时引用不兼容的 nuget 包版本
.net standard project references incompatible nuget package version at runtime
我在 .NET Core 2.0 项目中的一个 NuGet 依赖项遇到 运行时间问题。
我依赖于 NuGet 包 B,它依赖于 NuGet 包 A。NuGet 包 B 是一个多目标包,具有以下依赖关系图:
Package B
-- netstandard1.3
-- package A 1.0
-- netstandard 2.0
-- package A 2.0
-- net452
-- package A 1.0
-- net461
-- package A 2.0
这是我的问题:我将 NuGet 包 B 作为 .NET Standard 2.0 包使用,一切都编译得很好,当我 运行 通过 Visual Studio 2017 测试 运行纳尔.
然而,当我在 CLI 或我们的构建服务器上 运行 XUnit 时,我们得到一堆 MissingMethodException
,它们都指向 Package A 1.0
在 [=27 处被引用=]时间而不是Package B 2.0
。
对可能出现的问题有什么想法吗?尝试了将 Package B
版本锁定为 [2.0]
的所有常规步骤,但这没有帮助。
我明白了。问题出在 XUnit 2.3.0 - 当规范为 运行 时,dotnet xunit
命令将进程作为 .NET Core 2.0 以外的目标执行,因此使用了较低框架版本的包。
升级到 XUnit 2.3.1 解决了这个问题 - 测试现在作为 .NET Core 2.0 规范正确执行并加载正确版本的底层依赖项。
我在 .NET Core 2.0 项目中的一个 NuGet 依赖项遇到 运行时间问题。
我依赖于 NuGet 包 B,它依赖于 NuGet 包 A。NuGet 包 B 是一个多目标包,具有以下依赖关系图:
Package B
-- netstandard1.3
-- package A 1.0
-- netstandard 2.0
-- package A 2.0
-- net452
-- package A 1.0
-- net461
-- package A 2.0
这是我的问题:我将 NuGet 包 B 作为 .NET Standard 2.0 包使用,一切都编译得很好,当我 运行 通过 Visual Studio 2017 测试 运行纳尔.
然而,当我在 CLI 或我们的构建服务器上 运行 XUnit 时,我们得到一堆 MissingMethodException
,它们都指向 Package A 1.0
在 [=27 处被引用=]时间而不是Package B 2.0
。
对可能出现的问题有什么想法吗?尝试了将 Package B
版本锁定为 [2.0]
的所有常规步骤,但这没有帮助。
我明白了。问题出在 XUnit 2.3.0 - 当规范为 运行 时,dotnet xunit
命令将进程作为 .NET Core 2.0 以外的目标执行,因此使用了较低框架版本的包。
升级到 XUnit 2.3.1 解决了这个问题 - 测试现在作为 .NET Core 2.0 规范正确执行并加载正确版本的底层依赖项。