如何在MVC6中使用标准类库?

时间:2015-08-09 03:50:50

标签: visual-studio-2015 asp.net-core asp.net-core-mvc

在MVC6中包含标准类库是否有一种相当方便的方法?我认为标准的添加引用对话框可以创建一个包装器,但我没有运气。将其作为nuget包发布对于正在进行的开发调试来说似乎非常不方便。

如果没有包装器,是否有内置的方法将标准类库转换为新类型?

1 个答案:

答案 0 :(得分:15)

到目前为止,我已经看到了几种不同的方法(使用dnu实用程序或使用VS添加引用)。它也略有不同,具体取决于您是要引用现有程序集还是引用解决方案中的非asp 5项目。

当您想要添加对不属于您的解决方案的现有装配的引用时:

  • 使用dnu wrap命令添加参考。您可以打开开发人员命令提示符并导航到解决方案文件夹,甚至可以更轻松地打开visual studio中的包管理器控制台。

    现在,如果要添加对fullPathToYourDll\Foo.dll的引用,您将运行以下命令(在包装程序集时需要framework参数,并且定义为要包装的程序集的目标框架< / em>的):

    dnu wrap "C:\fullPathToYourDll\Foo.dll" -f 4.5.1
    

    这将生成/更新您的asp 5解决方案文件夹中的 wrap 文件夹,包括文件mySolution\wrap\Foo\project.json,如下所示:

    {
      "version": "1.0.0-*",
      "frameworks": {
        "net451": {
          "bin": {
            "assembly": "../../../FooSln/Foo/bin/Debug/Foo.dll",
            "pdb": "../../../FooSln/Foo/bin/Debug/Foo.pdb"
          }
        }
      }
    }
    

    最后,更新asp 5的project.json文件,以包含对包装程序集的引用,如下所示:

    "frameworks": {
      "dnx451": {
        "dependencies": {
          "Foo": "1.0.0-*",
        }
      }
    },
    
  • 或者,使用VS 。右键单击ASP 5项目中的引用,选择添加引用... ,然后单击浏览。现在导航到包含程序集的文件夹,然后选择dll文件。

    Visual Studio将为您更新wrap文件夹(创建mySolution\wrap\Foo\project.json),甚至会在您的project.json(您的asp 5项目中的那个)中添加依赖项。

如果要在解决方案中添加对非asp 5项目的引用:

  • 使用dnu wrap命令添加参考

    此过程与添加对现有程序集的引用的先前方案非常相似。现在,如果要在解决方案中添加对非asp 5项目的引用,则将运行以下命令:

    dnu wrap ".\myNonAsp5Project\MyNonAsp5Project.csproj"
    

    在添加对现有程序集的引用时,这将生成/更新asp 5解决方案文件夹中的 wrap 文件夹,尽管这次文件mySolution\wrap\MyNonAsp5Project\project.json略有不同,因为它包装项目而不是程序集:

    {
      "version": "1.0.0-*",
      "frameworks": {
        "net451": {
          "wrappedProject": "../../MyNonAsp5Project/MyNonAsp5Project.csproj",
          "bin": {
            "assembly": "../../MyNonAsp5Project/obj/{configuration}/MyNonAsp5Project.dll",
            "pdb": "../../MyNonAsp5Project/obj/{configuration}/MyNonAsp5Project.pdb"
          }
        }
      }
    }
    

    同样,您需要手动更新asp 5的project.json文件,以包含对包装程序集的引用,如下所示:

    "frameworks": {
      "dnx451": {
        "dependencies": {
          "MyNonAsp5Project": "1.0.0-*",
        }
      }
    },
    
  • 或者,使用VS 。右键单击ASP 5项目中的引用,选择添加引用... 。现在展开左侧的 Projects ,选择项目并单击“确定”。

    Visual Studio将更新wrap文件夹(Creating mySolution\wrap\MyNonAsp5Project\project.json),甚至会在project.json(你的asp 5项目中的那个)中添加依赖项。

PS。我一直在升级到Win10并安装/卸载最近的东西,不知怎的,我最终得到了一个环境变量 Platform = MCD 。这将由MSBuild作为默认平台,可能会给你带来一些痛苦。具体来说,在运行用于包装csproj文件的dnu wrap命令时,我收到错误无法解析引用。 (作为internally,它使用msbuild来解析csproj引用。)