我有需要使用 SGen 的程序集。程序集正在为记录器使用另一个程序集,并且该程序集使用不同版本的引用 Microsoft.Extensions.Configuration.Abstractions。项目是新的 csproj 但完整的框架。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0" />
使用 sgen 我得到了
Microsoft (R) Xml Serialization support utility
[Microsoft (R) .NET Framework, Version 4.8.3928.0]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: The type initializer for 'Infrastructure.Logging.CommonLogger' threw an exception.
- Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.
If you would like more help, please type "sgen /?".
主程序集使用的是第 5 版的抽象库,但 SGen 忽略了它。
试图为此 dll 生成程序集绑定重定向,但它仍然不起作用。
为什么以及如何解决它?部署到 RTM 服务器时应用程序崩溃。