【问题标题】:How to add regular class lib reference in ASP.NET 5 and Visual Studio 2015 CTP?如何在 ASP.NET 5 和 Visual Studio 2015 CTP 中添加常规类库引用?
【发布时间】:2015-03-16 19:48:18
【问题描述】:

根据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 框架,因为这是您添加引用的地方。
  • @PankajKapare,已经尝试过了,但没有成功。
  • 您是否尝试引用已编译的库或类库项目?只有以前的作品
  • @VictorHurdugaci,我只尝试引用一个库项目。
  • Pankaj 说:“还要确保您在项目属性 [WHAT 项目?Web 项目或类库项目???] 中选择了完整版本的 .Net 框架,因为这是您要添加的地方你的参考。”除了那个问题,我看不到在起始网络项目中你可以更改目标框架(我已经禁用了 aspnetcore,试图只针对完整的.net)。帮忙?

标签: asp.net visual-studio-2015 asp.net-core


【解决方案1】:

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

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

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

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

【讨论】:

  • 从 CTP6 开始,这似乎不起作用。尽管能够将类库添加到引用中(并且它显示在 project.json 文件中),但该类型在 vNext 项目中不可见。
  • 我也无法让它在 CTP6 中工作。我添加了引用,它出现在我的 frameworks.aspnet50 节点内的 project.json 文件中,但我无法编译,它说找不到库。
【解决方案2】:

我最近遇到了这个问题,并且能够通过将我的类库上的 Target Framework 更改为 4.5.1 来解决它。默认情况下,类库项目将使用 4.5.2。当您尝试将引用添加到您的 ASP.NET 5 项目时,它会尝试将其放入 DNX 4.5.1 存储桶中,并且 4.5.2 项目不起作用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多