如何在asp.net 5应用程序中添加Project Reference

时间:2015-06-05 11:59:56

标签: nuget-package asp.net-core visual-studio-2015

据我所知,Visual Studio 2015有一些更新,我们不能在asp.net 5应用程序中添加DLL,如果我们需要添加we need to make NuGet package and then install it.

现在我的问题是: -

1)如果我有一个包含两个类库的项目,那么如何在我的asp.net 5应用程序中添加该类库的引用(DLL)?

2)如果一个类库也处于开发模式,那么如果通过NuGet安装该DLL,那么如何在asp.net 5应用程序中更新该DLL,因为每次在NuGet上发布并获取最新版本需要更多时间。

3)假设我们需要使用NuGet添加所有DLL,那么私有DLL呢?

4)没有NuGet包管理器可以解决这个问题吗?

4 个答案:

答案 0 :(得分:6)

快速回答 - 您不需要NuGet包,是的,可以引用您自己的库。

两种方式:

  1. 将它添加到project.json中的根级别“dependecies”对象中。请注意,此操作将向“框架”部分中列出的每个目标框架添加引用,因此,如果您添加对旧类型库的引用,则无法使用新的DNXCore 5.0

    {
       "webroot": "wwwroot",
       "version": "1.0.0-*",
    
       "dependencies": {
           "Library": "1.0.0-*" 
    
  2. 通过添加特定框架版本。哪个更灵活,因为您可以为DNX451使用旧类型的库,为DNXCore 5.0使用新的vNext类库

    "frameworks": {
        "dnx451": {
            "dependencies": {
                "ClassicLib": "1.0.0-*",
                "vNextLib": "1.0.0-*",
            }
        },
        "dnxcore50" : {
            "dependencies": {
                "vNextLib": "1.0.0-*"
            }
        }
     } ....
    
  3. 我在Visual Studio 2015 RC上检查过的所有样本。

答案 1 :(得分:3)

您可以将旧类库Foo.csproj添加到Bar.xproj作为参考,但不能直接添加,请参阅下面的说明。无需在Beta8中上传软件包即可完成。

  1. 转到Foo.csproj文件夹,输入:dnv wrap Foo.csproj
  2. 您现在应该生成一些文件,对我而言是Foo/wrap/Foo/project.json。转到Visual Studio中的解决方案Add -> Existing project -> project.json
  3. 现在您有更多文件,包括Visual Studio解决方案中提供的Foo.xproj,但它不会构建。
  4. 在Foo目录中打开cmd并执行dnu restore
  5. 4)完成后没有错误,可以构建Foo.xproj,现在可以转到Bar.xproj并添加Foo.xproj作为参考。
  6. 在Bar目录中打开cmd并执行dnu restore
  7. 您现在可以构建Bar.xproj
  8. 我真的希望在最终版本中这会更容易。

答案 2 :(得分:2)

我已经编辑了我之前的回答,指出您在StackOverflow上的以下答案:

https://jsfiddle.net/mghs52my/

如果您需要引用其他类库的前端项目是ASP.NET 5 MVC 6 beta6,我可以验证有效的答案。

答案 3 :(得分:1)

您需要为程序集创建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)使用admin right打开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中,您可以使用以下命令更新和设置environement varriables:

 dnvm upgrade

然后再次尝试“kpm wrap”命令

之后,您将能够添加对项目的引用。但我认为它不适用于核心。如果您有问题,请尝试使用其他dnvm版本(如beta2或“2 1.0.0-beta5”)和命令dnvm install,如下所示:

dnvm install 1.0.0-beta4-11566