Проблема с проектом .NET Standard 2.0 со сборкой Serilog

#asp.net #asp.net-core-6.0

Вопрос:

У меня есть проект .NET Standard 2.0, который использует сборку Serilog для регистрации с помощью serilog, вот файл проекта:

 lt;Project Sdk="Microsoft.NET.Sdk"gt; lt;PropertyGroupgt;  lt;TargetFrameworkgt;netstandard2.0lt;/TargetFrameworkgt;  lt;AssemblyTitlegt;Loggerlt;/AssemblyTitlegt;  lt;Descriptiongt;Client Web Loggerlt;/Descriptiongt;  lt;AutoGenerateBindingRedirectsgt;falselt;/AutoGenerateBindingRedirectsgt; lt;/PropertyGroupgt; lt;ItemGroupgt;  lt;PackageReference Include="Microsoft.Win32.Registry" /gt;  lt;PackageReference Include="SchneiderElectric.Software.SASigning" /gt;  lt;PackageReference Include="Serilog" /gt;  lt;PackageReference Include="Serilog.AspNetCore" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" /gt; lt;/ItemGroupgt; lt;Target Name="PostBuild" AfterTargets="PostBuildEvent"gt;  lt;Exec Command="SET _WWBinDir=amp;quot;$(ProjectDir)......interfacesbin$(ConfigurationName)$(PlatformName)amp;quot;amp;#xD;amp;#xA;MKDIR %_WWBinDir%amp;#xD;amp;#xA;robocopy amp;quot;$(TargetDir) amp;quot; amp;quot;%_WWBinDir%amp;quot; InSightLogger.dll /ZB /NJH /NJS /NDL /NFL /NC /NSamp;#xD;amp;#xA;:ENDamp;#xD;amp;#xA;exit 0amp;#xD;amp;#xA;" /gt; lt;/Targetgt;  

У меня есть два других проекта в моем решении один в .NET 6.0, а другой в NET Framework 4.8 вот файлы проекта .NET 6.0:

 lt;Project Sdk="Microsoft.NET.Sdk.Web"gt; lt;PropertyGroup Label="Globals"gt;  lt;Descriptiongt;My Serverlt;/Descriptiongt;  lt;TypeScriptToolsVersiongt;3.1lt;/TypeScriptToolsVersiongt;  lt;TargetFrameworkgt;net6.0lt;/TargetFrameworkgt;  lt;_HasReferenceToSystemRuntimegt;truelt;/_HasReferenceToSystemRuntimegt;  lt;RootNamespacegt;My.Insightlt;/RootNamespacegt;  lt;DefineConstantsgt;DESKTOP;LICENSEREQUIREDlt;/DefineConstantsgt; lt;/PropertyGroupgt; lt;ItemGroupgt;  lt;Compile Remove="App_Start**" /gt;  lt;Content Remove="App_Start**" /gt;  lt;EmbeddedResource Remove="App_Start**" /gt;  lt;None Remove="App_Start**" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;Folder Include="....CommonwwwrootInsight" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;ProjectReference Include="....FavoritesFavoriteApiModelFavoriteApiModel.csproj" /gt;  lt;ProjectReference Include="....LoggerLoggerLogger.csproj" /gt;  lt;ProjectReference Include="..LicenseUtilLicenseUtil.csproj" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;None Include="App.config" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.0" /gt;  lt;PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" /gt;  lt;PackageReference Include="Newtonsoft.Json" Version="13.0.1" /gt;  lt;PackageReference Include="WWMenuHttpModule" Version="4.0.21100101" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" /gt; lt;/ItemGroupgt;  

И файл рамочного проекта:

 lt;Project Sdk="Microsoft.NET.Sdk"gt; lt;PropertyGroupgt;  lt;OutputTypegt;WinExelt;/OutputTypegt;  lt;RootNamespacegt;my.InSightlt;/RootNamespacegt;  lt;TargetFrameworkgt;net48lt;/TargetFrameworkgt;  lt;AssemblyTitlegt;Article Server Servicelt;/AssemblyTitlegt;  lt;NeutralLanguagegt;en-USlt;/NeutralLanguagegt;  lt;Descriptiongt;Article Servicelt;/Descriptiongt; lt;/PropertyGroupgt; lt;Import Project="......SharedComponentsExternalStyleCopStyleCop.Targets" /gt; lt;ItemGroupgt;  lt;PackageReference Include="System.Net.Http" /gt;  lt;PackageReference Include="Newtonsoft.Json" /gt;  lt;PackageReference Include="StyleCop" /gt;  lt;PackageReference Include="System.Configuration.ConfigurationManager" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;ProjectReference Include="....LoggerLoggerLogger.csproj" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;Reference Include="System.Management" /gt;  lt;Reference Include="System.ServiceProcess" /gt;  lt;Reference Include="System.Configuration.Install" /gt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;Compile Update="ProjectInstaller.cs"gt;  lt;SubTypegt;Componentlt;/SubTypegt;  lt;/Compilegt;  lt;Compile Update="ProjectInstaller.Designer.cs"gt;  lt;DependentUpongt;ProjectInstaller.cslt;/DependentUpongt;  lt;/Compilegt;  lt;Compile Update="myService.cs"gt;  lt;SubTypegt;Componentlt;/SubTypegt;  lt;/Compilegt;  lt;Compile Update="myService.Designer.cs"gt;  lt;DependentUpongt;myService.cslt;/DependentUpongt;  lt;/Compilegt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;EmbeddedResource Update="ProjectInstaller.resx"gt;  lt;DependentUpongt;ProjectInstaller.cslt;/DependentUpongt;  lt;/EmbeddedResourcegt;  lt;EmbeddedResource Update="myService.resx"gt;  lt;DependentUpongt;myService.cslt;/DependentUpongt;  lt;SubTypegt;Designerlt;/SubTypegt;  lt;/EmbeddedResourcegt; lt;/ItemGroupgt; lt;ItemGroupgt;  lt;PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" /gt; lt;/ItemGroupgt;  

для .NET 6.0 все работает нормально, но для .NET Framework 4.8 это через исключение, когда я получаю доступ к статическому классу и методу проектов регистратора, вот исключение, которое я получаю

 The operation failed. Bind result: hr = 0x80070002. The system cannot find the file specified. Assembly manager loaded from: C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll Running under executable C:Program Files (x86)WonderWorldMyInsightServeraahInSightHost.exe --- A detailed error log follows. --Pre-bind state information -- LOG: DisplayName = netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51  Fully-specified) LOG: Appbase = file:///C:/Program Files (x86)/WonderWorld/MyInsight/Server/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = aahInSightHost.exe Calling assembly : Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:Program Files (x86)WonderWorldMyInsightServeraahInSightHost.exe.Config LOG: Using host configuration file:  LOG: Using machine configuration file from C:WindowsMicrosoft.NETFramework64v4.0.30319configmachine.config. LOG: Post-policy reference: netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C:/Program Files (x86)/Wonderware/HistorianInsight/Server/netstandard.DLL. LOG: Attempting download of new URL file:///C:/Program Files (x86)/Wonderware/HistorianInsight/Server/netstandard/netstandard.DLL. LOG: Attempting download of new URL file:///C:/Program Files (x86)/Wonderware/HistorianInsight/Server/netstandard.EXE. LOG: Attempting download of new URL file:///C:/Program Files (x86)/Wonderware/HistorianInsight/Server/netstandard/netstandard.EXE. LOG: All probing URLs attempted and failed.  

Примечание: я отметил только одно, что создал проект netstandard2.0, и в журналах упоминается, что netstandard 2.1.0.0 ищет, но не может понять.

Комментарии:

1. Некоторая зависимость запрашивает стандарт .NET 2.1, в то время как .NET Framework поддерживает только 2.0. Выясните, какая это зависимость, и обновите ее (если разработчики исправили ее) или понизьте до версии, ориентированной на 2.0.