如何将 "old" 依赖项与 ASP.NET 5 一起使用

How to use "old" dependencies with ASP.NET 5

我使用全新安装的 VS 2015 Enterprise RC1 创建了一个新项目,我正在尝试为 Mandrill 添加一个针对 .NET 4 构建的 Nuget 包。

当我构建项目时,我收到来自 DNX Core 5.0 的错误,指出找不到命名空间:

All packages are already installed and there is nothing to restore.
NuGet package restore finished.
1>------ Build started: Project: WebApplication3, Configuration: Debug Any CPU ------
1>C:\Projects\WebApplication3\src\WebApplication3\MessageServices.cs(5,7,5,15): DNX Core 5.0 error CS0246: The type or namespace name 'Mandrill' could not be found (are you missing a using directive or an assembly reference?)
1>
1>  Build failed.
1>           0 Warning(s).
1>           1 Error(s).
1>
1>  Time elapsed 00:00:00.1404086
1>
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

我尝试将其添加到 project.json 中的 dnx451 框架,而不是作为全局依赖项添加,结果相同。

"frameworks": {
    "dnx451": {
        "dependencies": {
            "Mandrill": "1.3.1"
        }
    },
    "dnxcore50": { }
},

甚至可以将 .NET 4 包与 ASP.NET 5 一起使用吗?如果可以,需要什么?

可能 Mandrill 包不支持 CoreCLR。您有两个选择:

  1. 通过删除 project.json
  2. 中的 dnxcore50 部分,从您的包中删除对 CoreCLR 的支持
  3. 使用条件编译并排除对 Mandrill api 的调用。示例:#if DXNCORE50 ...#if DNX451