netCore 1.1与aspx项目中的.Net Framework 4.6.1不兼容



在我的公司,我们有一个使用.netcore v1.1构建的项目。该项目包含web服务使用的所有类,也是在v1.1中构建的。我正试图在aspx项目中为API编写一个测试程序,并希望引用这组类,无论是作为一个包含的项目,还是作为一个DLL。

我会跳过我试图让它与包含的项目一起工作的地狱,跳到让我的web应用程序引用dll。当我启动应用程序(在开发中,VS2017(时,它编译得还可以,但在尝试从该dll创建对象的第一个实例中,我得到了以下错误:

无法加载文件或程序集"System.Runtime,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常:0x80131040(

我在网上浏览过,有各种各样的问题/答案要么不相关,要么没有意义。

我确实添加了绑定重定向,但它并没有改变错误:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>

在我看来,这应该是对dll的直接使用,没有云,没有主要的花哨的东西,只有一个使用引用dll(1.1核心(的.net(4.6.1(程序。我承认这些天我并不精通DLL的复杂性,但我认为微软正在努力让我们度过DLL地狱。

如前所述,您可能需要针对多个框架。

<PropertyGroup><TargetFrameworks>net452;netstandard1.3</TargetFrameworks></PropertyGroup>

您最终可能会更新到最新的.NET Core或标准版本。

本文中提到了github的这个示例,它可能会给你一个更清晰的想法,它解释了使用两个框架组合项目的不同场景,以及将它们分开是有益的场景。

最新更新