ASP.NET Core 1.0 (vNext) 中的引用库
Referencing Library in 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
。我运行dnu pack
生成了MyLibrary.1.0.0.nupkg
。还有两个文件夹:dnx451
和 dnxcore50
,它们都包含 MyLibrary.1.0.0.dll
。我想在 MyWebSite
中使用 MyLibrary
,但是,我很困惑。
- 如何将 "include"
MyLibrary
转换为 MyWebSite
?我是否手动复制 .dll
文件?如果有,是哪一个?我应该改用 nupkg
文件吗?这是一个私有程序集,我不想通过 NuGet 将其发布到全球。
- 我应该在
MyWebSite/project.json
中输入什么来引用 MyLibrary
程序集?
您使用的是 Visual Studio 2015 RC 版吗?如果是这样,请按照以下步骤操作:
- 在解决方案资源管理器中展开您的 Web 项目
- 右键单击 参考资料
- 单击上下文菜单中的添加引用...
- Select 来自 Reference Manager 的项目
- 勾选 MyLibrary
旁边的复选框
- 单击确定
- 利润
如果您不使用 visual studio,则可以通过更新您的 Web 项目中的 project.json 文件来实现。
如果您创建了 "vNext class library project",则将其添加到 json 对象上的 dependencies 属性:
"dependencies": {
"MyLibrary": "1.0.0-*"
}
如果您不想与解决方案之外的其他 people/projects 共享包,则不必将包发布到 NuGet。您可以直接从源代码中引用包。
但是,如果这仍然不适合您,那么您有以下三种选择:
- 使用 Roslyn 进行内部化。示例:project.json and the actual code
- 您可以直接参考来源。示例 project.json
- 创建构建时间依赖项。示例 project.json and actual code for the package
- 几个问题用粗体标出。
(如何 "include" MyLibrary 进入 MyWebSite?)
在MyWebSite/project.json中:像这样添加引用(不用担心版本号不显示)。
(是否手动复制.dll文件?)
没有
(这是一个私有程序集,我不想通过 NuGet 将其发布到全球。)
那就不要那样做:)
从您的 Web 应用程序引用您的 class 库将确保在构建 Web 应用程序时包含它。然后,您应该将 Web 应用程序文件复制到能够 运行 它的应用程序服务器。我认为您应该尝试将 Web 应用程序发布到 Azure Web 应用程序,然后使用服务器资源管理器查看发布后服务器上的文件的外观。或者您是否已经知道在您的 Web 应用程序中使用它之前没有理由制作一个包?
我正在学习 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
。还有两个文件夹:dnx451
和 dnxcore50
,它们都包含 MyLibrary.1.0.0.dll
。我想在 MyWebSite
中使用 MyLibrary
,但是,我很困惑。
- 如何将 "include"
MyLibrary
转换为MyWebSite
?我是否手动复制.dll
文件?如果有,是哪一个?我应该改用nupkg
文件吗?这是一个私有程序集,我不想通过 NuGet 将其发布到全球。 - 我应该在
MyWebSite/project.json
中输入什么来引用MyLibrary
程序集?
您使用的是 Visual Studio 2015 RC 版吗?如果是这样,请按照以下步骤操作:
- 在解决方案资源管理器中展开您的 Web 项目
- 右键单击 参考资料
- 单击上下文菜单中的添加引用...
- Select 来自 Reference Manager 的项目
- 勾选 MyLibrary 旁边的复选框
- 单击确定
- 利润
如果您不使用 visual studio,则可以通过更新您的 Web 项目中的 project.json 文件来实现。
如果您创建了 "vNext class library project",则将其添加到 json 对象上的 dependencies 属性:
"dependencies": {
"MyLibrary": "1.0.0-*"
}
如果您不想与解决方案之外的其他 people/projects 共享包,则不必将包发布到 NuGet。您可以直接从源代码中引用包。
但是,如果这仍然不适合您,那么您有以下三种选择:
- 使用 Roslyn 进行内部化。示例:project.json and the actual code
- 您可以直接参考来源。示例 project.json
- 创建构建时间依赖项。示例 project.json and actual code for the package
- 几个问题用粗体标出。
(如何 "include" MyLibrary 进入 MyWebSite?)
在MyWebSite/project.json中:像这样添加引用(不用担心版本号不显示)。
(是否手动复制.dll文件?)
没有
(这是一个私有程序集,我不想通过 NuGet 将其发布到全球。)
那就不要那样做:)
从您的 Web 应用程序引用您的 class 库将确保在构建 Web 应用程序时包含它。然后,您应该将 Web 应用程序文件复制到能够 运行 它的应用程序服务器。我认为您应该尝试将 Web 应用程序发布到 Azure Web 应用程序,然后使用服务器资源管理器查看发布后服务器上的文件的外观。或者您是否已经知道在您的 Web 应用程序中使用它之前没有理由制作一个包?