我正在努力移植一个".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的引用,但是在"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.
还有其他人遇到过这个问题吗?我很欣赏任何人可能拥有的任何见解.
I solved this problem installing the Nuget package:
Install-Package Microsoft.Windows.Compatibility
Run Code Online (Sandbox Code Playgroud)
I was using ASP.net Core 2.2 but maybe works for 2.0v too
在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.*" />
Run Code Online (Sandbox Code Playgroud)
在您的情况下,还需要添加 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
| 归档时间: |
|
| 查看次数: |
4283 次 |
| 最近记录: |