如何在 asp.net 5 应用程序中添加项目引用
How to add Project Reference in asp.net 5 application
据我所知,Visual Studio 2015 有一些更新,我们不能再在 asp.net 5 应用程序中添加 DLL,如果我们需要添加,那么 we need to make NuGet package and then install it.
现在我的问题是:-
1) 如果我的一个项目有两个 class 库,那么如何在我的 asp.net 5 应用程序中添加 class 库的引用 (DLL)?
2) 如果 class 库也处于开发模式那么如何在 asp.net 5 应用程序中更新该 DLL 如果该 DLL 通过 NuGet 安装,因为每次在 NuGet 上发布并获取最新需要更多时间。
3) 假设如果我们需要使用 NuGet 添加所有 DLL,那么私有 DLL 呢?
4) 如果没有 NuGet 包管理器,有什么办法可以处理这个问题吗?
快速回答 - 你不需要 NuGet 包,是的,可以引用你自己的库。
两种方式:
通过将其添加到 project.json 中的根级别 "dependecies" 对象中。请注意,此操作会将引用添加到 "frameworks" 部分中列出的每个目标框架中,因此,如果您添加对旧类型 class 库的引用,它将不适用于新的 DNXCore 5.0
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Library": "1.0.0-*"
通过为特定的框架版本添加它。哪个更灵活,因为您可以为 DNX451 使用旧类型的库,为 DNXCore 5.0 使用新的 vNext Class 库
"frameworks": {
"dnx451": {
"dependencies": {
"ClassicLib": "1.0.0-*",
"vNextLib": "1.0.0-*",
}
},
"dnxcore50" : {
"dependencies": {
"vNextLib": "1.0.0-*"
}
}
} ....
我在 Visual Studio 2015 RC 上检查过的所有样本。
我已经编辑了我之前的答案,以便在 Whosebug 上为您指出以下答案:
如果您的前端项目(您需要从中引用其他 class 库)是 ASP.NET 5 MVC 6 beta6,我可以验证那里的答案是否有效。
您需要为程序集创建一个 project.json。
你可以使用命令:
kpm wrap "c:\path\to.csproj"
这将在解决方案根文件夹中创建一个 "wrap" 文件夹。那么您必须能够添加对您的项目的引用。如果不行,尝试移动项目目录中的project.json。
要使用 kpm(K Package Manager),您需要安装 "k" 和 "dnx" 工具并安装有效版本。
如果 kpm 命令不起作用,请按照以下步骤操作:
1) 以管理员身份打开 PowerShell 并键入此命令以允许 powershel 下载并安装程序包:
Set-ExecutionPolicy RemoteSigned
2) 以管理员权限打开cmd,输入以下命令安装包:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
3) 在 cmd 中,您可以使用以下命令更新和设置环境变量:
dnvm upgrade
然后重试 "kpm wrap" 命令
之后,您将能够添加对项目的引用。但我认为它不适用于核心。如果遇到问题,请尝试使用其他 dnvm 版本(如 beta2 或“2 1.0.0-beta5”)和命令 dnvm install,如下所示:
dnvm install 1.0.0-beta4-11566
您可以将旧的 class 库 Foo.csproj 添加到 Bar.xproj 作为参考,但不能直接添加,请参阅下面的说明。 Beta8不上传包也可以做到。
- 也转到 Foo.csproj 文件夹,键入:
dnv wrap Foo.csproj
。
- 您现在应该生成了一些文件,对我来说是
Foo/wrap/Foo/project.json
。转到 Visual Studio、Add -> Existing project -> project.json
. 中的解决方案
- 现在您有更多文件,包括 Visual Studio 解决方案中可用的
Foo.xproj
,但无法构建。
- 在Foo目录下打开cmd,执行
dnu restore
.
- 4) 完成后没有错误,可以构建 Foo.xproj 您现在可以转到 Bar.xproj 并添加 Foo.xproj 作为参考。
- 在Bar目录下打开cmd,执行
dnu restore
.
- 您现在可以构建 Bar.xproj
我真的希望在最终版本中这会更容易。
据我所知,Visual Studio 2015 有一些更新,我们不能再在 asp.net 5 应用程序中添加 DLL,如果我们需要添加,那么 we need to make NuGet package and then install it.
现在我的问题是:-
1) 如果我的一个项目有两个 class 库,那么如何在我的 asp.net 5 应用程序中添加 class 库的引用 (DLL)?
2) 如果 class 库也处于开发模式那么如何在 asp.net 5 应用程序中更新该 DLL 如果该 DLL 通过 NuGet 安装,因为每次在 NuGet 上发布并获取最新需要更多时间。
3) 假设如果我们需要使用 NuGet 添加所有 DLL,那么私有 DLL 呢?
4) 如果没有 NuGet 包管理器,有什么办法可以处理这个问题吗?
快速回答 - 你不需要 NuGet 包,是的,可以引用你自己的库。
两种方式:
通过将其添加到 project.json 中的根级别 "dependecies" 对象中。请注意,此操作会将引用添加到 "frameworks" 部分中列出的每个目标框架中,因此,如果您添加对旧类型 class 库的引用,它将不适用于新的 DNXCore 5.0
{ "webroot": "wwwroot", "version": "1.0.0-*", "dependencies": { "Library": "1.0.0-*"
通过为特定的框架版本添加它。哪个更灵活,因为您可以为 DNX451 使用旧类型的库,为 DNXCore 5.0 使用新的 vNext Class 库
"frameworks": { "dnx451": { "dependencies": { "ClassicLib": "1.0.0-*", "vNextLib": "1.0.0-*", } }, "dnxcore50" : { "dependencies": { "vNextLib": "1.0.0-*" } } } ....
我在 Visual Studio 2015 RC 上检查过的所有样本。
我已经编辑了我之前的答案,以便在 Whosebug 上为您指出以下答案:
如果您的前端项目(您需要从中引用其他 class 库)是 ASP.NET 5 MVC 6 beta6,我可以验证那里的答案是否有效。
您需要为程序集创建一个 project.json。 你可以使用命令:
kpm wrap "c:\path\to.csproj"
这将在解决方案根文件夹中创建一个 "wrap" 文件夹。那么您必须能够添加对您的项目的引用。如果不行,尝试移动项目目录中的project.json。
要使用 kpm(K Package Manager),您需要安装 "k" 和 "dnx" 工具并安装有效版本。
如果 kpm 命令不起作用,请按照以下步骤操作:
1) 以管理员身份打开 PowerShell 并键入此命令以允许 powershel 下载并安装程序包:
Set-ExecutionPolicy RemoteSigned
2) 以管理员权限打开cmd,输入以下命令安装包:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
3) 在 cmd 中,您可以使用以下命令更新和设置环境变量:
dnvm upgrade
然后重试 "kpm wrap" 命令
之后,您将能够添加对项目的引用。但我认为它不适用于核心。如果遇到问题,请尝试使用其他 dnvm 版本(如 beta2 或“2 1.0.0-beta5”)和命令 dnvm install,如下所示:
dnvm install 1.0.0-beta4-11566
您可以将旧的 class 库 Foo.csproj 添加到 Bar.xproj 作为参考,但不能直接添加,请参阅下面的说明。 Beta8不上传包也可以做到。
- 也转到 Foo.csproj 文件夹,键入:
dnv wrap Foo.csproj
。 - 您现在应该生成了一些文件,对我来说是
Foo/wrap/Foo/project.json
。转到 Visual Studio、Add -> Existing project -> project.json
. 中的解决方案
- 现在您有更多文件,包括 Visual Studio 解决方案中可用的
Foo.xproj
,但无法构建。 - 在Foo目录下打开cmd,执行
dnu restore
. - 4) 完成后没有错误,可以构建 Foo.xproj 您现在可以转到 Bar.xproj 并添加 Foo.xproj 作为参考。
- 在Bar目录下打开cmd,执行
dnu restore
. - 您现在可以构建 Bar.xproj
我真的希望在最终版本中这会更容易。