【发布时间】:2021-12-18 01:04:12
【问题描述】:
我有一个基于 netcoreapp3.1 的 DLL。 DLL 引用 NuGet 包 Microsoft.Extensions.Configuration.Json 版本 5.0.0。如果我将 DLL 部署到未安装 VisualStudio 的另一台 PC 并尝试从第三方程序访问它,则会收到错误消息:
Could not load file or assembly 'System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
如果我在那台 PC 上安装 VS,它就可以工作。如果我卸载 VS,错误会再次出现。
显然 VS 添加了我的 DLL 所需的一些组件。我该如何解决?
我试图解决的步骤
- 我明确添加了 NuGet 包 System.Text.Json 版本 5.0.2。错误仍然出现。
.csproj 文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
<Version>1.0.3</Version>
<AssemblyVersion>1.0.2.0</AssemblyVersion>
<FileVersion>1.0.3.0</FileVersion>
<Copyright>ZOOM Informatik GmbH, Grenchen, Schweiz</Copyright>
</PropertyGroup>
<ItemGroup>
<Compile Remove="publish\**" />
<EmbeddedResource Remove="publish\**" />
<None Remove="publish\**" />
</ItemGroup>
<ItemGroup>
<None Remove="SapServiceReference\swagger.json" />
</ItemGroup>
<ItemGroup>
<OpenApiReference Include="SapServiceReference\swagger.json" ClassName="SapServiceReference" CodeGenerator="NSwagCSharp" Namespace="SapService" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.ApiDescription.Client" Version="5.0.11">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="NSwag.ApiDescription.Client" Version="13.13.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Text.Json" Version="5.0.2" />
</ItemGroup>
</Project>
【问题讨论】:
-
为什么要将 .NET Core 3.1 包与 .NET 5 包混合使用?您不应安装任何大于 3.x.x 的 Microsoft.Extensions.* 包
标签: c# visual-studio .net-core