Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 如何在MVC6中使用标准类库?_Visual Studio 2015_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

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

Visual studio 2015 如何在MVC6中使用标准类库?,visual-studio-2015,asp.net-core,asp.net-core-mvc,Visual Studio 2015,Asp.net Core,Asp.net Core Mvc,在MVC6中包含标准类库是否有一种合理方便的方法?我认为标准的addreference对话框可以创建一个包装器,但我没有任何运气。将其发布为nuget包对于正在进行的开发调试来说似乎非常不方便 如果没有包装器,是否有内置的方法将标准类库转换为新类型 到目前为止,我已经看到了几种不同的方法(使用dnu实用程序或使用VS添加引用)。根据您是要引用现有程序集还是要引用解决方案中的非asp 5项目,它也略有不同 如果要添加对不属于解决方案一部分的现有程序集的引用: 使用dnu wrap命令添加引用。您

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


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

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

如果要添加对不属于解决方案一部分的现有程序集的引用:

  • 使用
    dnu wrap
    命令添加引用。您可以打开开发人员命令提示符并导航到解决方案文件夹,甚至更简单,只需在visual studio中打开package manager控制台即可

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

    这将生成/更新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-*",
        }
      }
    },
    
    "frameworks": {
      "dnx451": {
        "dependencies": {
          "MyNonAsp5Project": "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": {
          "Foo": "1.0.0-*",
        }
      }
    },
    
    "frameworks": {
      "dnx451": {
        "dependencies": {
          "MyNonAsp5Project": "1.0.0-*",
        }
      }
    },
    
  • 或者,使用VS。在ASP 5项目中的引用上单击鼠标右键,选择“添加引用…”。。。。现在展开左侧的项目,选择该项目并单击“确定”

    Visual studio将更新wrap文件夹(创建
    mySolution\wrap\MyNonAsp5Project\project.json
    ),甚至将在project.json(asp 5项目中的一个)中添加依赖项


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

非常详细的答案-非常感谢!