ASP.NET vNext 可以使用非 vNext 引用吗?
Posted
技术标签:
【中文标题】ASP.NET vNext 可以使用非 vNext 引用吗?【英文标题】:Can ASP.NET vNext use non-vNext references? 【发布时间】: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。 【参考方案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 秒自动刷新一次窗口的焦点。
【讨论】:
以上是关于ASP.NET vNext 可以使用非 vNext 引用吗?的主要内容,如果未能解决你的问题,请参考以下文章