如何在 asp.net 5 应用程序中添加项目引用

How to add Project Reference in asp.net 5 application

据我所知,Visual Studio 2015 有一些更新,我们不能再在 asp.net 5 应用程序中添加 DLL,如果我们需要添加,那么 we need to make NuGet package and then install it.

现在我的问题是:-

1) 如果我的一个项目有两个 class 库,那么如何在我的 asp.net 5 应用程序中添加 class 库的引用 (DLL)?

2) 如果 class 库也处于开发模式那么如何在 asp.net 5 应用程序中更新该 DLL 如果该 DLL 通过 NuGet 安装,因为每次在 NuGet 上发布并获取最新需要更多时间。

3) 假设如果我们需要使用 NuGet 添加所有 DLL,那么私有 DLL 呢?

4) 如果没有 NuGet 包管理器,有什么办法可以处理这个问题吗?

快速回答 - 你不需要 NuGet 包,是的,可以引用你自己的库。

两种方式:

  1. 通过将其添加到 project.json 中的根级别 "dependecies" 对象中。请注意,此操作会将引用添加到 "frameworks" 部分中列出的每个目标框架中,因此,如果您添加对旧类型 class 库的引用,它将不适用于新的 DNXCore 5.0

    {
       "webroot": "wwwroot",
       "version": "1.0.0-*",
    
       "dependencies": {
           "Library": "1.0.0-*" 
    
  2. 通过为特定的框架版本添加它。哪个更灵活,因为您可以为 DNX451 使用旧类型的库,为 DNXCore 5.0 使用新的 vNext Class 库

    "frameworks": {
        "dnx451": {
            "dependencies": {
                "ClassicLib": "1.0.0-*",
                "vNextLib": "1.0.0-*",
            }
        },
        "dnxcore50" : {
            "dependencies": {
                "vNextLib": "1.0.0-*"
            }
        }
     } ....
    

我在 Visual Studio 2015 RC 上检查过的所有样本。

我已经编辑了我之前的答案,以便在 Whosebug 上为您指出以下答案:

如果您的前端项目(您需要从中引用其他 class 库)是 ASP.NET 5 MVC 6 beta6,我可以验证那里的答案是否有效。

您需要为程序集创建一个 project.json。 你可以使用命令:

 kpm wrap "c:\path\to.csproj"

这将在解决方案根文件夹中创建一个 "wrap" 文件夹。那么您必须能够添加对您的项目的引用。如果不行,尝试移动项目目录中的project.json。

要使用 kpm(K Package Manager),您需要安装 "k" 和 "dnx" 工具并安装有效版本。

如果 kpm 命令不起作用,请按照以下步骤操作:

1) 以管理员身份打开 PowerShell 并键入此命令以允许 powershel 下载并安装程序包:

Set-ExecutionPolicy RemoteSigned

2) 以管理员权限打开cmd,输入以下命令安装包:

 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"

3) 在 cmd 中,您可以使用以下命令更新和设置环境变量:

 dnvm upgrade

然后重试 "kpm wrap" 命令

之后,您将能够添加对项目的引用。但我认为它不适用于核心。如果遇到问题,请尝试使用其他 dnvm 版本(如 beta2 或“2 1.0.0-beta5”)和命令 dnvm install,如下所示:

dnvm install 1.0.0-beta4-11566

您可以将旧的 class 库 Foo.csproj 添加到 Bar.xproj 作为参考,但不能直接添加,请参阅下面的说明。 Beta8不上传包也可以做到。

  1. 也转到 Foo.csproj 文件夹,键入:dnv wrap Foo.csproj
  2. 您现在应该生成了一些文件,对我来说是 Foo/wrap/Foo/project.json。转到 Visual Studio、Add -> Existing project -> project.json.
  3. 中的解决方案
  4. 现在您有更多文件,包括 Visual Studio 解决方案中可用的 Foo.xproj,但无法构建。
  5. 在Foo目录下打开cmd,执行dnu restore.
  6. 4) 完成后没有错误,可以构建 Foo.xproj 您现在可以转到 Bar.xproj 并添加 Foo.xproj 作为参考。
  7. 在Bar目录下打开cmd,执行dnu restore.
  8. 您现在可以构建 Bar.xproj

我真的希望在最终版本中这会更容易。