Referencing Library in ASP.NET Core 1.0 (vNext)

这一生的挚爱 提交于 2019-12-05 13:30:59

问题


I am learning ASP.NET Core 1.0 (vNext). With that in mind, I have a solution that is structured like this:

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

I am successfully compiling MyLibrary from the command-line using dnu build. I ran dnu pack which generated MyLibrary.1.0.0.nupkg. There are also two folders: dnx451 and dnxcore50 which both contain MyLibrary.1.0.0.dll. I want to use MyLibrary in MyWebSite, however, I'm confused.

  1. How do I "include" MyLibrary into MyWebSite? Do I manually copy over the .dll file? If so, which one? Should I use the nupkg file instead? This is a private assembly, I do not want to publish it globally via NuGet.
  2. What do I put in MyWebSite/project.json to reference the MyLibrary assembly?

回答1:


You don't have to publish the package to NuGet if you don't want to share it with other people/projects outside of your solution. You can just reference the package directly from source.

However, if that still doesn't work for you then you have three options:

  1. Internalize using Roslyn. Example: project.json and the actual code
  2. You can reference the sources directly. Example project.json
  3. Create a build time dependency. Example project.json and actual code for the package



回答2:


Are you using Visual Studio 2015 RC? If so then follow these steps:

  1. Expand your web project in the Solution Explorer
  2. Right click on References
  3. Click on Add Reference... from the context menu
  4. Select Projects from the Reference Manager
  5. Tick the checkbox next to MyLibrary
  6. Click OK
  7. Profit

If you are not using visual studio then this can be achieved by updated the project.json file in your web project.

If you created a "vNext class library project" then add this to the dependencies property on the json object:

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



回答3:


  1. Several questions marked in bold.

(How do I "include" MyLibrary into MyWebSite?) In MyWebSite/project.json: Add the reference like this (don't worry about the version number not showing up).

(Do I manually copy over the .dll file?)

No

(This is a private assembly, I do not want to publish it globally via NuGet.)

Then don't do that :)

Referencing your class library from your web application will make sure it is included when building the web application. Then you should copy your web application files to an application server able to run it. I think you should try to publish your web application to an Azure Web app and then use server explorer to look at what the files on the server looks like after publishing. Or did you already know there is no reason to make a package before using it in you web app?



来源:https://stackoverflow.com/questions/30985426/referencing-library-in-asp-net-core-1-0-vnext

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!