Visual Studio 2022 未添加 System.Runtime.CompilerServices.Unsafe.dll 的传递依赖项

问题描述 投票:0回答:1

我从 VS2019 升级到 VS2022 后遇到了这个问题。

我有一个项目 A,其中包含这些顶级 nuget 包(使用 nuget PackageReference)

  1. NewtonSoft.Json
  2. 邮件套件
  3. HtmlAgilityPack
  4. INIFileParserDotNetCore.Signed

作为这些包的一部分,nuget 都识别出了一大堆传递包,包括 BouncyCastle.Cryptography、MimeKit、System.Buffers 和一堆 System.xxx 包,包括名为

System.Runtime.CompilerServices.Unsafe
的包。

然后我有项目 B,它依赖于项目 A(上面)(项目 B 中没有其他直接依赖项或 nuget 包)

我的理解是,我不需要安装传递包,系统会在构建时自动处理它。

当我构建项目 A 时,所有传递依赖项都显示在 bin 文件夹中。

但是,当我构建项目 B 时,System.Runtime.CompilerServices.Unsafe 的所有传递依赖项

除了
都显示在 bin 文件夹中。这造成了很多麻烦,因为当项目 B 调用项目 A 中的方法时,它需要
System.Runtime.CompilerServices.Unsafe
才能操作,但现在会抛出无法加载
System.Runtime.CompilerServices.Unsafe
dll 的异常。

为什么只是一个

System.Runtime.CompilerServices.Unsafe
传递依赖在项目 B 中不起作用?它在 VS2019 中运行良好,但升级到 VS2022 后它停止工作。我是否需要手动安装传递依赖项,或者 VS2022 与 VS2019 有什么不同。正确的修复方法是什么?

PS - 我尝试删除所有 nuget 软件包,然后重新安装它们,但这不起作用(实际上,一开始 Nuget 出了问题,它从未创建对已安装软件包的引用,但在干净地重新安装后,它最终创建了对已安装软件包的引用,但在构建项目 B 后或在依赖项中,该传递包仍然不会显示在项目 B 中)

nuget nuget-package visual-studio-2022 transitive-dependency
1个回答
0
投票

我正在使用 Microsoft Visual Studio Community 2022(64 位)版本 17.5.4

这是项目A的.csproj文件:

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

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

  <ItemGroup>
    <PackageReference Include="HtmlAgilityPack" Version="1.11.54" />
    <PackageReference Include="INIFileParserDotNetCore.Signed" Version="2.5.2" />
    <PackageReference Include="MailKit" Version="4.2.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
  </ItemGroup>

</Project>

这是projectB的.csproj文件:

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

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

  <ItemGroup>
    <ProjectReference Include="..\ProjectA\ProjectA.csproj" />
  </ItemGroup>

</Project>

但是构建之后,构建过程中没有任何错误输出:

如果可能的话,能否请您分享有关您的项目的更多信息,例如您的 .csproj 文件。

© www.soinside.com 2019 - 2024. All rights reserved.