.net Visual Studio“停止模式”中使用的NuGet包与调试模式中使用的NuGet包不同

plicqrtu  于 2023-05-02  发布在  .NET
关注(0)|答案(1)|浏览(137)

我发现了Visual Studio的一个奇怪行为。
我有一个应用程序,它的依赖关系图中有相同的NuGet包(但版本不同)。
图表如下所示:

“cussing dependency”规则指出版本1。9.0应该恢复,因为它的最低适用版本在我的图。
如果我在Visual Studio中加载“MyApp”的解决方案,NuGet包“PnP.核心版本1。“7.0”已使用。
我知道这一点,因为当右键单击一个函数并说“转到定义”时,版本 www.example.com 的程序集进行反编译并显示:

当我尝试调用只存在于1中的函数时,IDE也会显示错误。9.0.
但是,如果我运行应用程序并使用ILSpy检查加载的DLL文件程序集版本,我会看到正确的程序集(1.9.0.0)加载。
Visual studio在停止模式下还原的NuGet版本与在调试(或构建)模式下还原的NuGet版本不同,这是怎么回事?

yc0p9oo0

yc0p9oo01#

这是我这边的csproj文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="PnP.Core.Auth" Version="[1.9.0, )" />
    </ItemGroup>
</Project>

通过使用上述配置,版本1.9.0将成功安装:

我没有注意到1。7.0安装
如果你仍然遇到这个问题,请分享你的信息(示例代码和配置),并在你的第一个屏幕截图中解释组和sharepoint。

相关问题