简体   繁体   中英

*System.Text.Json* unable to load when VisualStudio is not installed

I have a DLL based on netcoreapp3.1 . The DLL references the NuGet package Microsoft.Extensions.Configuration.Json version 5.0.0 . If I deploy the DLL to another PC where VisualStudio is not installed and try to access it from a third party program, I get the error:

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)

If I install VS on that PC, it works. If I uninstall VS the error appears again.

Apparently VS add some components that are needed for my DLL. How can I resolve that?

Steps I Tried To Resolve

  • I explicitly added the NuGet Package System.Text.Json Version 5.0.2 . Error still appears.

The.csproj file

<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>

for my project when I upgrade .net version from 4.5 to 4.6 it' Ok

Check dependencies: https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/

this version requires for you to use one of:

  • .net framework >= 4.6.1
  • .net standard >= 2.0
  • .net core 5.0

so if you have requirements for netcoreapp3.1 you need to use the version 3.1.20 or lower

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM