从 Framework 4.5 Class 库项目添加对 ASP.NET 5 Class 库的引用

Add reference to ASP.NET 5 Class Library from Framework 4.5 Class Library Project

我想从常规 Framework 4.5 Class 库项目中添加对 ASP.NET 5 Class 库项目的引用。 我做不到。 是否有一些解决方法,这会得到支持吗? 我试图像这样在 project.json 中添加对框架 4.5 的依赖:

 "frameworks": {

        "net451": {
            "dependencies": {
                 "System.Data.Common": "1.0.0-beta1",
                "System.Data.SqlClient": "1.0.0-beta1"
            },
            "frameworkAssemblies": {

            }

        },

然后添加对此 ASP.NET 5 Class 库项目的引用,但没有成功。

你可以的!首先我们需要了解 "old-style" 项目输出和引用 DLL。 ASP.NET 5 个项目输出和引用 NuGet 包。

首先设置一个本地 nuget 存储库。幸运的是,这可以是一个文件夹。然后将其添加到文件夹 NuGet.Config 文件中。

<config>
 <add key="localrepo" value="C:\Temp" />
 <the rest of your file />
</config>

您也可以通过 Visual Studio 中的工具 -> 选项 -> NuGet 包管理器 -> 包源 window 来完成此操作。

然后将命令行导航到要引用的 ASP.NET 5 class 库。使用

向下拖动依赖项
kpm restore

然后构建并打包并将结果输出到您的本地存储库文件夹。

kpm pack --out C:\Temp

现在您应该可以将 kpm 包中的 nupkg 作为 nuget 参考添加到您的 "old style" 项目中。如果您愿意,可以使用从 Visual Studio 管理 NuGet 包的常规方式。

注意:您的 ASP.NET 5 class 库需要以 net45 为目标才能工作。确保它位于 project.json

的框架部分
...
"frameworks": {
        "net45": {},
        // Other frameworks
  }
...

或者: 如果你想快速而肮脏地做到这一点,你可以 运行

kpm build

,并添加直接 DLL 引用。 DLL 位置应该在 kpm build 的输出中侦听。

选中 "Produce outputs on build" 复选框会将构建输出复制到 artifacts\bin\[CONFIGURATION]\[FRAMEWORK] 文件夹

那么你可以引用这个dll