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

19
我正在移植一个“ASP.NET Core Web 应用程序”,该应用程序在.NET Framework 4.6.1(即完整框架)下编译,现在要移植到.NET Core 2.0上进行编译。我有一些依赖项仍需要完整的框架,但是使用.NET 2.0,我可以从.NET Core 2.0编译的应用程序中引用完整框架的程序集。
当我尝试运行这个项目时,我遇到了以下错误:
“无法加载文件或程序集'System.ServiceModel、版本=4.0.0.0、文化=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。
有其他人遇到过这个问题吗?我非常感谢任何人可能有的所有见解。

请查看此链接:https://github.com/dotnet/core-setup/issues/2981 另外,您可以重命名包文件夹并重新加载NuGet包。 - Duefectu
我最终选择了net47作为目标,这对我来说已经足够好了。 - AlignedDev
1
我遇到了同样的问题。在我朋友的机器上工作得很好,但在我的机器上出现了错误。有人找到解决方法吗? - mikemike396
有人知道解决方法吗?这是关于 .net core 2.0 项目的。 - BlackShawarna
System.ServiceModel 在 .NET Standard 和 .NET Core 中已经被弃用,它已被 ASP.NET Core 取代。 - Parth Akbari
你尝试过添加System.ServiceModel.Primitives包吗?https://github.com/dotnet/standard/issues/575 - Dmitry Pavlov
2个回答

10

我解决了这个问题,安装了Nuget包:

Install-Package Microsoft.Windows.Compatibility

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


这对我也起作用了。我正在使用Net Core 3.1 API,添加了.NET Framework 4.8库,并使用多个连接服务WCF。 - Ramon

1
在Asp.Net Core中,当使用Microsoft WCF Web Service Reference Provider作为连接服务时,代码生成器会自动包含System.ServiceModel.Duplex、System.ServiceModel.Http、System.ServiceModel.NetTcp和System.ServiceModel.Security程序集。
<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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接