2014-08-30 27 views
29

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

Visual Studio现在在编辑器/智能感知中显示包的使用情况,没有错误。但编译时,我得到“命名空间'MyPackage'找不到”错误。

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

+0

NuGet包是否支持4.5.1? – 2014-08-31 00:36:37

+0

是的,它支持4.5.1。 – driis 2014-08-31 14:27:41

回答

18

如果你同时在project.json中列出了k10和net451框架,默认情况下,VS 14会根据这两个框架构建项目。在这种情况下,如果任何程序集不是为k10框架构建的,则生成失败并显示包未找到错误。因此net 451应该专门添加到project.json的net451部分。我只是粘贴在那里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" 
      }   
    } 
} 
} 
+2

这对我有效,但我不得不从配置列表中完全删除k10,以避免VS尝试为k10构建。有一个空的依赖关系列表没有帮助(VS 14 CTP 3)。我已经编辑了这个答案,所以任何人在以后的时间阅读答案都是很清楚的。 – driis 2014-09-01 18:35:37

4

根据ASP.NET improvements in Visual Studio 2015 CTP 5列举一个例子project.json,你将能够从vNext项目中引用的标准项目。您可以通过右键单击“添加引用”菜单或手动将其添加到project.json下的依赖项来完成此操作。

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