在ASP.NET Core 1.0中引用库(vNext)
我正在学习ASP.NET Core 1.0(vNext)。 考虑到这一点,我有一个结构如下的解决方案:
MySolution src MyLibrary MyClass.cs project.json MyWebSite Startup.cs project.json
我正在使用dnu build
从命令行成功编译MyLibrary
。 我运行了生成MyLibrary.1.0.0.nupkg
dnu pack
。 还有两个文件夹: dnx451
和dnxcore50
,它们都包含MyLibrary.1.0.0.dll
。 我想在MyWebSite
使用MyLibrary
,但是,我很困惑。
- 如何将
MyLibrary
“包含”到MyWebSite
? 我手动复制.dll
文件吗? 如果是这样,哪一个? 我应该使用nupkg
文件吗? 这是一个私有程序集,我不想通过NuGet在全局发布它。 - 我在
MyWebSite/project.json
放入什么来引用MyLibrary
程序集?
如果您不想将其与解决方案之外的其他人/项目共享,则不必将包发布到NuGet。 您可以直接从源引用包。
但是,如果仍然不适合您,那么您有三个选择:
- 使用Roslyn进行内部化。 示例: project.json和实际代码
- 您可以直接参考源。 示例project.json
- 创建构建时依赖项。 示例project.json和包的实际代码
您使用的是Visual Studio 2015 RC吗? 如果是,请按照以下步骤操作:
- 在解决方案资源管理器中展开Web项目
- 右键单击References
- 单击上下文菜单中的Add Reference ….
- 从Reference Manager中选择Projects
- 勾选MyLibrary旁边的复选框
- 单击确定
- 利润
如果您不使用visual studio,则可以通过更新Web项目中的project.json文件来实现。
如果您创建了“vNext类库项目”,则将其添加到json对象的dependencies属性中:
"dependencies": { "MyLibrary": "1.0.0-*" }
- 几个问题用粗体标出。
( 如何将MyLibrary“包含”到MyWebSite中? )在MyWebSite / project.json中:添加这样的引用(不要担心版本号不显示)。
(我是否手动复制.dll文件?)
没有
(这是一个私有程序集,我不想通过NuGet全局发布它。)
然后不要这样做:)
从Web应用程序引用您的类库将确保在构建Web应用程序时包含它。 然后,您应该将Web应用程序文件复制到能够运行它的应用程序服务器。 我认为您应该尝试将您的Web应用程序发布到Azure Web应用程序,然后使用服务器资源管理器查看发布后服务器上的文件。 或者您是否已经知道在您的网络应用程序中使用它之前没有理由制作包?