2

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

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

错误:包 Microsoft.NETCore.App 1.0.0 与 net35 (.NETFramework,Version=v3.5) 不兼容。包 Microsoft.NETCore.App 1.0.0 支持: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 时失败。

4

1 回答 1

1

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

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

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

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

于 2016-07-15T23:30:12.940 回答