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