【问题标题】:Referencing Library in ASP.NET Core 1.0 (vNext)ASP.NET Core 1.0 (vNext) 中的引用库
【发布时间】:2015-06-22 16:43:38
【问题描述】:

我正在学习 ASP.NET Core 1.0 (vNext)。考虑到这一点,我有一个结构如下的解决方案:

MySolution
  src
    MyLibrary
      MyClass.cs
      project.json
    MyWebSite
      Startup.cs
      project.json

我正在使用dnu build 从命令行成功编译MyLibrary。我跑了dnu pack,它生成了MyLibrary.1.0.0.nupkg。还有两个文件夹:dnx451dnxcore50,它们都包含 MyLibrary.1.0.0.dll。我想在MyWebSite 中使用MyLibrary,但是我很困惑。

  1. 如何将MyLibrary“包含”到MyWebSite 中?我是否手动复制.dll 文件?如果有,是哪一个?我应该改用nupkg 文件吗?这是一个私有程序集,我不想通过 NuGet 在全球范围内发布它。
  2. 我应该在MyWebSite/project.json 中添加什么来引用MyLibrary 程序集?

【问题讨论】:

    标签: c# .net .net-assembly asp.net-core coreclr


    【解决方案1】:

    您使用的是 Visual Studio 2015 RC 吗?如果是,请按照以下步骤操作:

    1. 在解决方案资源管理器中扩展您的 Web 项目
    2. 右键单击参考文献
    3. 点击上下文菜单中的添加参考...
    4. Reference Manager中选择Projects
    5. 勾选 MyLibrary 旁边的复选框
    6. 点击确定
    7. 利润

    如果您没有使用 Visual Studio,那么这可以通过更新您的 Web 项目中的 project.json 文件来实现。

    如果您创建了“vNext 类库项目”,则将其添加到 json 对象的 dependencies 属性中:

    "dependencies": {
          "MyLibrary": "1.0.0-*"
       }
    

    【讨论】:

    • 我正在使用 vNext。但是,运行时在哪里查找 project.json 文件的依赖项中引用的库? .dll 文件需要位于某个位置,以便应用程序可以使用它。不过我不确定它属于哪里。
    【解决方案2】:

    如果您不想与解决方案之外的其他人/项目共享包,则不必将包发布到 NuGet。您可以直接从源代码中引用该包。

    但是,如果这仍然对您不起作用,那么您有三个选择:

    1. 使用 Roslyn 进行内部化。示例:project.jsonactual code
    2. 您可以直接引用源代码。示例project.json
    3. 创建构建时间依赖项。示例 project.jsonactual code for the package

    【讨论】:

      【解决方案3】:
      1. 几个问题以粗体标记。

      如何将 MyLibrary “包含”到 MyWebSite 中?) 在 MyWebSite/project.json 中:像这样添加引用(不要担心版本号不显示)。

      (我要手动复制 .dll 文件吗?)

      没有

      (这是一个私有程序集,我不想通过 NuGet 全局发布它。)

      那就别这样了:)

      从您的 Web 应用程序引用您的类库将确保在构建 Web 应用程序时包含它。然后,您应该将您的 Web 应用程序文件复制到能够运行它的应用程序服务器。我认为您应该尝试将您的 Web 应用程序发布到 Azure Web 应用程序,然后使用服务器资源管理器查看发布后服务器上的文件是什么样子。或者您是否已经知道在您的网络应用程序中使用它之前没有理由制作一个包?

      【讨论】:

        猜你喜欢
        • 2015-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-03
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 2017-09-14
        相关资源
        最近更新 更多