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

时间:2017-08-22 17:11:17

标签: asp.net-core

我正致力于移植一个" ASP.NET核心Web应用程序"那是在.NET Framework 4.6.1(即完整框架)下编译而不是编译.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的引用,但是在#34; 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。

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

1 个答案:

答案 0 :(得分:0)

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

<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,版本= 4.0.0.0不再使用。

也请参阅:https://apps.dev.microsoft.com/#/appList