在ASP.NET Core 1.0(vNext)中如何引用库

13

我正在学习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程序集?
3个回答

6

如果您正在使用Visual Studio 2015 RC,则请按照以下步骤操作:

  1. 在“解决方案资源管理器”中展开您的Web项目
  2. 右键单击 “引用”
  3. 从上下文菜单中选择“添加引用…”
  4. 从“参考管理器”中选择“项目”
  5. 选中“我的库”旁边的复选框
  6. 点击“确定”
  7. 获利

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

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

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

1
我正在使用vNext。然而,运行时在哪里查找project.json文件中依赖的库?.dll文件需要存在于某个位置,以便应用程序可以使用它。但我不确定它应该放在哪里。 - Some User

4
如果您不想与解决方案之外的其他人/项目共享包,则无需将包发布到NuGet。您可以直接从源代码引用该包。
但是,如果这对您仍然不起作用,则有三个选项:
1.使用Roslyn进行内部化。例如:project.json实际代码 2.您可以直接引用源代码。例如:project.json 3.创建构建时依赖项。例如:project.json软件包的实际代码

3
  1. 几个加粗标记的问题。

(如何将"MyLibrary"包含到"MyWebSite"中?) 在MyWebSite/project.json文件中:添加以下引用(不用担心版本号未显示)。 Add VS2015RC class library reference

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

不需要。

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

那就不要这样做 :)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接