-
Notifications
You must be signed in to change notification settings - Fork 558
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.NET Core 2.0 self-contained app: Could not load file or assembly 'System.Private.ServiceModel, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' #2349
Comments
The Runtime Identifier (RID) that |
@zhenlan Thanks for the help. Are you going to support the portable RIDs (win-x64, win-x86)? Or is it best always use the specific for the platform I'm targeting? |
@fabiano Yes, I think we can support portable RIDs in our next release (likely 2.1). Thanks for bringing this to our attention. Just a note, we will need to change the RID of S.Private.ServiceModel from |
Try to add RuntimeIdentifier into csproj. We fixed our AMI Linux build by adding |
4.5.0 packages all have "win" RIDs now as well as "win7" RIDs for netstandard2.0 and netstandard1.3 respectively. |
Thank you guys! |
The latest Microsoft.Windows.Compatibility package (2.0.1) is still pulling in the old 4.1.x System.Private.ServiceModel so this problem is still happening to new apps that reference the Windows Compat Pack, to get around it you have to explicitly add a reference to the latest version of this System.Private.ServiceModel. |
…tem: - Reworked LoadContextAssemblyResolver assembly loading: every module assembly with all level dependencies is loaded into AssemblyLoadContext.Default to allow shared types to be used; - Set all module Web projects <CopyLocalLockFileAssemblies> option to true to have the possibility to copy all dependencies from its bin folder (using this approach it should work on prod env where we cannot just restore packages). Futher investigation and revision could be done based on: https://github.com/dotnet/cli/issues/10502; - Set <RuntimeIdentifier>win10-x64</RuntimeIdentifier> option to VirtoCommerce.ImageToolsModule.Web project to address problem with NuGet package Microsoft.Windows.Compatibility, which do not copy its dependency "System.Private.ServiceModel.dll" on publishing. Explicit reference to System.ServiceModel.Http 4.5.3 package did not help, setting RID helped, though it makes module platform dependent. Info: dotnet/wcf#2349, https://stackoverflow.com/questions/50746592/system-private-servicemodel-missing-in-azure-app-service-at-runtime; - Removed redundant LoadContextAssemblyResolver singleton registration; - Changed Windows specific "\" path separator to platform independent Path.DirectorySeparatorChar in LocalStorageModuleCatalog probing folder; - Fixed Sonar warning in ModuleInitializer.
…tem: - Reworked LoadContextAssemblyResolver assembly loading: every module assembly with all level dependencies is loaded into AssemblyLoadContext.Default to allow shared types to be used; - Set all module Web projects <CopyLocalLockFileAssemblies> option to true to have the possibility to copy all dependencies from its bin folder (using this approach it should work on prod env where we cannot just restore packages). Futher investigation and revision could be done based on: https://github.com/dotnet/cli/issues/10502; - Set <RuntimeIdentifier>win10-x64</RuntimeIdentifier> option to VirtoCommerce.ImageToolsModule.Web project to address problem with NuGet package Microsoft.Windows.Compatibility, which do not copy its dependency "System.Private.ServiceModel.dll" on publishing. Explicit reference to System.ServiceModel.Http 4.5.3 package did not help, setting RID helped, though it makes module platform dependent. Info: dotnet/wcf#2349, https://stackoverflow.com/questions/50746592/system-private-servicemodel-missing-in-azure-app-service-at-runtime; - Removed redundant LoadContextAssemblyResolver singleton registration; - Changed Windows specific "\" path separator to platform independent Path.DirectorySeparatorChar in LocalStorageModuleCatalog probing folder; - Fixed Sonar warning in ModuleInitializer.
…tem. (#124) * - Added tests for module assembly loading; - Used PluginLoader for this; * #123 Support module nested references loading in Platform modular system: - Reworked LoadContextAssemblyResolver assembly loading: every module assembly with all level dependencies is loaded into AssemblyLoadContext.Default to allow shared types to be used; - Set all module Web projects <CopyLocalLockFileAssemblies> option to true to have the possibility to copy all dependencies from its bin folder (using this approach it should work on prod env where we cannot just restore packages). Futher investigation and revision could be done based on: https://github.com/dotnet/cli/issues/10502; - Set <RuntimeIdentifier>win10-x64</RuntimeIdentifier> option to VirtoCommerce.ImageToolsModule.Web project to address problem with NuGet package Microsoft.Windows.Compatibility, which do not copy its dependency "System.Private.ServiceModel.dll" on publishing. Explicit reference to System.ServiceModel.Http 4.5.3 package did not help, setting RID helped, though it makes module platform dependent. Info: dotnet/wcf#2349, https://stackoverflow.com/questions/50746592/system-private-servicemodel-missing-in-azure-app-service-at-runtime; - Removed redundant LoadContextAssemblyResolver singleton registration; - Changed Windows specific "\" path separator to platform independent Path.DirectorySeparatorChar in LocalStorageModuleCatalog probing folder; - Fixed Sonar warning in ModuleInitializer. * #123 Support module nested references loading in Platform modular system: - Excluded copying assembly related dlls that are in TPA; - Splitted assembly file extensions (dll, exe) and assembly service file extensions (pdb, xml, .deps.json) for using in filtering; - Removed unused McMaster.NETCore.Plugins package reference from VirtoCommerce.Platform.Modules.csproj; - Fixed couple of Sonar warnings; * #123 Support module nested references loading in Platform modular system: - Implemented "api/platform/modules/restart" action using IApplicationLifetime.StopApplication(); * #123 Support module nested references loading in Platform modular system: - Added AdditionalProbingPath filling based on runtimeconfig.json and runtimeconfig.dev.json for Development env + NuGet and DotNet package caches for Production env; - Removed all NuGet assembly copying to Modules probing folder. So it works on DEV env, for PROD we will need to prepare packages with required dependencies; - Rebased on the latest master; Review: - Reworked test according to https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices; - Arranged DependencyReader as an extension; - Other fixes; * #123 Support module nested references loading in Platform modular system: - Removed copying NuGet assemblies to output in Module1;
@zhenlan I'm confused by this. I'm developing an Azure Function (v2) app in dot net core 2.1 which uses System.ServiceModel.Http 4.5.3 (using System.Private.ServiceModel 4.5.3 in turn). My local RID is
Looking in the If I add Even downgrading System.ServiceModel.Http to 4.4.4 still fails:
It seems I can't get this to work regardless of the RID used, what am I doing wrong? |
I am also facing the same issue, Is there any workaround for this? |
Workaround add this to your build process <Target Name="BuildProces" BeforeTargets="Build">
<Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.private.servicemodel\4.5.3\runtimes\win\lib\netstandard2.0\System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)\bin" />
</Target> |
Thanks @breddynet. @zhenlan @StephenBonikowsky some clarification here would be appreciated, why would the latest version not be included in a build on win10-x64 under dotnet 2.1.503? |
@nero120 I'll look into this today. |
Hi @nero120 while this is an RID issue it isn't with our WCF packages. We do the correct thing based on the .NET Core supported RID's runtime.json file. The issue is with the Azure Function app, there is an active issue with lots of details regarding this problem. |
Aha! Thank you very much for looking into this @StephenBonikowsky, I've subscribed to the issue you linked to. |
@zhenlan Is this resolved now, i have a .net core 2.2 console application consuming wcf service while it's working fine on development machine but when generated build in CI/CD using win-x64 platform it failed calling service with the same error : System.IO.FileNotFoundException: Could not load file or assembly 'System.Private.ServiceModel, Version=4.1.2.4, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. File name: 'System.Private.ServiceModel, Version=4.1.2.4, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' |
@ehsansajjad465 the System.Private.ServiceModel assembly version 4.1.2.4 was shipped in WCF packages version 4.4.4 which was a .NET Core 2.0 servicing release. This issue was fixed with the WCF packages version 4.5.0 which was part of the .NET Core 2.1 release. So you need to update your WCF packages to the 4.5.0 version or newer. |
please use RID. I know win7-64 works. Portable RID will not work dotnet publish -c Release -r win7-x64 --self-contained true |
How to do this ? Confused on your reply. |
For anyone struggling with this: In the process of upgrading .NET Framework Webjobs to .NET Core 3.1 I faced this issue. I was on 4.4.0 versions of System.ServiceModel packages. Upgrading til 4.7.0 fixed this problem. |
I still get this after upgrading to 4.7.0. Im running .NetCore 3.1 already. Error: System.Private.ServiceModel: Configuration files are not supported. |
This still seems to be happening in .NET 5... Could not load file or assembly 'System.Private.ServiceModel, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. |
Hi,
I'm migrating a console application to .NET Core 2.0 and when I run the app on my server I'm receiving this message:
This app is self-contained and has a netstandard2 library dependency that uses the System.ServiceModel.Http package to call an external api (using WCF).
When I publish the app using the win-x64 runtime identifier the file System.Private.ServiceModel.dll is not placed in the output folder.
If I use the win81-x64/win10-x64 runtime identifiers the file is placed in the output folder.
Is this the correct behavior?
Thanks!
Fabiano
How to simulate
Create the project:
dotnet new console
Update the csproj to:
Publish the project:
dotnet publish --configuration Release --runtime win-x64
Execute the exe file on the publish folder
dotnet --info output
The text was updated successfully, but these errors were encountered: