【问题标题】:Can ASP.NET vNext use non-vNext references?ASP.NET vNext 可以使用非 vNext 引用吗?
【发布时间】:2014-10-24 10:53:09
【问题描述】:

所以我在 VS 14 CTP 中有一个 ASP .NET vNext 项目。我的目标是 .NET Framework 4.5.1。我添加了对 NuGet 包的引用,该包没有特定于 vNext 的构建。

Visual Studio 现在在编辑器/Intellisense 中显示包的用法,没有错误。但是在编译时,我得到“找不到命名空间'MyPackage'”的错误。

我的理解是,只要我以现有的 .NET Framework 4.5.1 为目标,我就可以添加对 .NET Framework 程序集的引用。不是这样吗?我可以解决这个错误吗?

【问题讨论】:

  • NuGet 包是否支持 4.5.1?
  • 是的,它确实支持 4.5.1。

标签: c# asp.net .net asp.net-core


【解决方案1】:

如果您在 project.json 中同时列出了 k10 和 net451 框架,VS 14 默认会针对这两个框架构建项目。在这种情况下,如果没有为 k10 框架构建任何程序集,则构建将失败并出现未找到包的错误。所以 net 451 包应该专门添加到 project.json 的 net451 部分。我只是粘贴一个示例 project.json,其中 Microsoft.Bcl 包在 net451 部分中列出

{
"dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-*",
    "Microsoft.AspNet.Mvc": "6.0.0-*"
    <more packages>
},
"configurations": {
    "net451": {
        "dependencies": {
            "Microsoft.Bcl": "1.1.9"
            }        
  }
 }
}

【讨论】:

  • 这对我有用,但我必须从配置列表中完全删除 k10 以避免 VS 尝试为 k10 构建。拥有一个空的依赖项列表并没有帮助(VS 14 CTP 3)。我已经编辑了这个答案,所以稍后阅读答案的任何人都会清楚这一点。
【解决方案2】:

根据ASP.NET improvements in Visual Studio 2015 CTP 5,您将能够从 vNext 项目中引用标准项目。您可以通过简单地通过右键单击“添加引用”菜单来执行此操作,或者手动将其添加到 dependecies 下的 project.json 中。

只需避免循环引用(A 引用 B 和 B 引用 A),因为这将导致 Visual Studio 每 5 秒自动刷新一次窗口的焦点。

【讨论】:

    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2015-10-12
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2015-03-18
    • 1970-01-01
    相关资源
    最近更新 更多