【问题标题】:How to add Project Reference in asp.net 5 application如何在 asp.net 5 应用程序中添加项目引用
【发布时间】:2015-11-27 05:16:05
【问题描述】:

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

现在我的问题是:-

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

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

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

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

【问题讨论】:

    标签: nuget-package asp.net-core visual-studio-2015


    【解决方案1】:

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

    两种方式:

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

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

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

    我在 Visual Studio 2015 RC 上检查过的所有示例。

    【讨论】:

    • 能否请您帮忙,是否可以将 asp.net 库构建为 dll 文件,然后将其作为依赖项添加到项目中?我的意思不是项目参考,而只是 dll 参考(没有源代码)?例如,如果要下载dll,保存到磁盘并添加到project.json。
    • @DmitrySikorsky 你可以试试这个:github.com/aspnet/Home/wiki/…
    • 这个答案在 2016 年初仍然有效吗?我已经这样做了,但我得到“无法解决依赖项 XY”
    【解决方案2】:

    您可以将旧类库 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. 现在您有了更多文件,包括 Foo.xproj,它在 Visual Studio 解决方案中可用,但无法构建。
    4. 在 Foo 目录中打开 cmd 并执行 dnu restore
    5. 在 4) 完成且没有错误并且可以构建 Foo.xproj 后,您现在可以转到 Bar.xproj 并添加 Foo.xproj 作为参考。
    6. 在Bar目录下打开cmd,执行dnu restore
    7. 您现在可以构建 Bar.xproj

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

    【讨论】:

    • 不是 DNV 是 DNU!
    【解决方案3】:

    我已经编辑了我之前的答案,以便将您指向 StackOverflow 上的以下答案:

    Issue adding reference to class library project in ASP.NET 5 (Core)

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

    【讨论】:

      【解决方案4】:

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

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

      这将在解决方案根文件夹中创建一个“包装”文件夹。然后您必须能够添加对您的项目的引用。如果不行的话,试着把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
      

      【讨论】:

        猜你喜欢
        • 2015-10-15
        • 2019-11-16
        • 2014-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 2015-12-29
        相关资源
        最近更新 更多