如何在ASP.NET 5和Visual Studio 2015 CTP中添加常规类库引用?

7
根据http://blogs.msdn.com/b/webdev/archive/2015/01/16/asp-net-5-in-visual-studio-2015-ctp-5.aspx,您现在应该能够将常规类库包含到asp.net 5/vnext项目中。
当我使用添加引用时,package.config会更新,看起来像这样:
...
"frameworks": {
    "aspnet50": {
        "dependencies": {
            "ClassLib": "1.0.0-*"
        }
    },
    "aspnetcore50": { }
},
...

在 Visual Studio 中一切看起来都很好,并且智能感知也可以正常工作,但是编译失败了。我收到了 CS103 错误(当前上下文中不存在 'xxxx' 的名称)。有任何想法吗?

另外,如果针对核心进行目标设置,它是否应该正常工作?


尝试在没有版本的情况下引用它 "ClassLib": ""。同时,请确保您在项目属性中选择了完整版本的 .Net Framework,因为这是您添加引用的位置。 - Pankaj Kapare
@PankajKapare,已经尝试过了,没有什么运气。 - Tomas Jansson
你是尝试引用已编译的库还是类库项目?只有前者有效。 - Victor Hurdugaci
@VictorHurdugaci,我只是尝试引用一个库项目。 - Tomas Jansson
Pankaj说:“还要确保在项目属性中选择了完整版本的 .Net 框架 [哪个项目?Web 项目还是类库项目???],因为这是您添加引用的位置。”除此之外,我看不到在入门 Web 项目中可以更改目标框架(我已禁用了 aspnetcore,试图只针对完整的 .net)。帮忙吗? - Nicholas Petersen
我的理解是,从ASP.NET 5开始,NuGet包是依赖的单位。因此,您需要生成一个包含这些dll文件的NuGet包,并依赖于它。 - Chris Montgomery
2个回答

0
最近我遇到了这个问题,通过将我的类库的目标框架更改为4.5.1,我成功地解决了它。默认情况下,类库项目将使用4.5.2。当您尝试将引用添加到ASP.NET 5项目时,它将尝试将其放入DNX 4.5.1存储桶中,而对于一个4.5.2项目,这是行不通的。

这个不起作用。请参见此处https://dev59.com/4I_ea4cB1Zd3GeqPQ6KF - Sean Merron

0

使用新发布的Visual Studio 2015 CTP,我刚刚能够:

  1. 创建一个新的“ASP.NET 5 starter App”项目。
  2. 将一个新的普通(非ASP.NET 5)类库项目添加到从步骤1创建的解决方案中。
  3. 在类库中添加了一个静态方法public static DateTime Foo.GetTime()。
  4. 在主页索引视图中添加了ClassLibrary1.Foo.GetTime().ToString()。

一切都编译并运行,显示由类库返回的时间值。

(注意:我确保没有使用Core运行时。我相信使用Core运行时的项目只能使用针对Core运行时构建的.dll文件。)


1
从CTP6开始,这似乎无法工作。尽管可以将类库添加到引用中(并显示在project.json文件中),但该类型未在vNext项目中可见。 - James White
1
我也无法在CTP6中使其工作。我添加了引用,它出现在我的project.json文件中的frameworks.aspnet50节点内,但我无法编译,它说找不到库。 - happyfirst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接