ASP.NET Core 2.0无法加载文件或程序集System.ServiceModel

问题描述 投票:17回答:2

我正在努力移植一个在.NET Framework 4.6.1(即完整框架)下编译的“ASP.NET核心Web应用程序”,以编译.NET Core 2.0。我有一些仍然需要完整框架的依赖项,但使用.NET 2.0,我的理解是我现在可以从.NET Core 2.0编译的应用程序中引用完整的框架程序集。

当我尝试运行该项目时,我收到以下错误:

无法加载文件或程序集'System.ServiceModel,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。该系统找不到指定的文件。

我浏览了所有我引用的NuGet包和项目,但没有一个引用System.ServiceModel.Web,但我不相信它与System.ServiceModel相同。当我打开位于bin文件夹中的projectname.deps.json文件时,我看到对System.ServiceModel.Web的引用,但是在“Microsoft.NETCore.App/2.0.0”部分下没有对System.ServiceModel的引用,该部分包含以下行:“ref / netcoreapp2.0 / System.ServiceModel.Web.dll”:{},

我还在“C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App \ 2.0.0”文件夹中查看,我看到一个System.ServiceModel.Web.dll。

我没有做任何WCF工作,正如我所说,我已经查看了我正在使用的库的所有依赖项,但它们似乎都没有引用System.ServiceModel。

还有其他人遇到过这个问题吗?我很欣赏任何人可能拥有的任何见解。

asp.net-core
2个回答
1
投票

我解决了安装Nuget包的问题:

Install-Package Microsoft.Windows.Compatibility

我使用的是ASP.net Core 2.2,但也可能适用于2.0v


0
投票

在Asp.Net Core中,当在连接的服务下使用Microsoft WCF Web服务引用提供程序时,代码生成器自动包括System.ServiceModel.Duplex,System.ServiceModel.Http,System.ServiceModel.NetTcp,System.ServiceModel.Security'assemblies 。

<PackageReference Include="System.ServiceModel.Duplex" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Http" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Security" Version="4.4.*" /> 

在您的场合,还需要添加System.ServiceModel.Primitives。 System.ServiceModel.Primitives程序集包含System.ServiceModel.dll

System.ServiceModel,Version = 4.0.0.0不再使用。

另请参阅:https://github.com/dotnet/standard/issues/575#issuecomment-380479584

© www.soinside.com 2019 - 2024. All rights reserved.