从 ASP.NET 核心项目中引用 .NET 3.5 DLL

Reference a .NET 3.5 DLL from ASP.NET Core project

我有一个在 .NET 3.5 下编译的 DLL,它表示一个 POCO 数据模型。客户端应用程序仅限于 .NET 3.5,并且 DLL 必须由客户端和服务器共享,因此不能选择重新编译 DLL。

我正在尝试将服务器 REST API 重写为 ASP.NET Core MVC 项目(使用 1.0 版本和 VS2015 下的 Preview 2 工具)。我尝试用所谓的 "bin syntax" 更新 project.json ,如下所示,但是包恢复日志显示了一堆错误,例如:

error: Package Microsoft.NETCore.App 1.0.0 is not compatible with net35 (.NETFramework,Version=v3.5). Package Microsoft.NETCore.App 1.0.0 supports: netcoreapp1.0 (.NETCoreApp,Version=v1.0)

"frameworks": {
"netcoreapp1.0": {
    "imports": [ "dotnet5.6", "portable-net45+win8" ]
},
"net35": {
    "bin": { "assembly": "c:\source\externaldllsdebug\datadef.dll" }
}

我还尝试在 DLL 文件夹中设置一个 nuget 包,然后将该文件夹设为新的 nuget 源。它打开包很好,但在尝试导入 DLL 时失败。

我认为目前您尝试做的事情是不可能的。

另一种解决方案是重构生成共享 DLL 的项目,以生成与 .NET 3.5 和 netcoreapp1.0 兼容的库:

"frameworks": {
    "net35": { },
    "netstandard1.1": {
        "dependencies": {
            "NETStandard.Library": "1.6.0"
        }
    }
}

这样,您可以生成一个在您的 .NET 3.5 项目中仍然有效的 DLL,并且还可以在您的 ASP.NET 核心项目中安装一个没有任何问题或黑客攻击的 DLL。