如果没有 dnx451,使用 dnx 的 c# 类库将无法运行

标签 c# dnx kpm

我正在创建一个 POC,以了解使用新的 DNX 构建方法创建我们的 c# 库项目会有多困难。我安装了 VS 2015 并运行在: dnu --version 1.0.0-beta4-11566。我的 c# 库仍然需要支持 .net 4.0,但是我想利用 project.json + nuget 3.0 中出现的新构建/nuget 内容。所以我创建了一个图书馆应用程序并尝试在控制台应用程序中使用它。

1) 类库1
2) ConsoleApp1

ClassLibrary1 项目.json

{
  "version": "1.0.0-*",
  "description": "poc",
  "authors": [ "Patrick" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "Newtonsoft.Json": "6.0.8",
    "Microsoft.Bcl": "1.1.10"
  },

  "frameworks": {
    "net40": { }
  }
  }

ConsoleApp1 project.json

{
  "version": "1.0.0-*",
  "description": "Another test",
  "authors": [ "Patrick" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "ClassLibrary1": "1.0.0"
  },

  "commands": {
    "MyProj": "MyProj"
  },

  "frameworks": {
    "net40": {},
    "dnx451": {}
  }
}

我以为我可以删除框架 dnx451,但是如果没有 dnx451 (dnx.run),我的控制台应用程序将无法运行。但是它将使用 dnu build 构建!!!为什么? 这是我在离开 dnx451 并尝试运行它时遇到的错误。

System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1': Microsoft.Bcl 1.1.10 Newtonsoft.Json 6.0.8

最佳答案

DNX 项目可以引用 .NET 4 应用程序,但我不相信 DNX 运行时可以运行仅引用 net40 项目的基于 DNX 的项目。 dnx451 是在 .NET 4.5.1 上运行的执行环境的名称,否则控制台应用程序将不知道如何加载。

关于如果没有 dnx451,使用 dnx 的 c# 类库将无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30176432/

相关文章:

validation - 如何在 DNX Core 5.0 (ASP.NET 5) 中针对 XSD(单独文档)验证 XML?

asp.net-mvc - DNX 与 DNX 核心

asp.net-core - 来自 git 的依赖

c# - Acyclic Visitor 相对于 Switch On 类型命令的优势

c# - File.Delete 无法删除文件,因为该文件正在被另一个进程使用。不知道如何解决这个问题

c# - 具有动态枚举字段的自定义 Unity C# 脚本编辑器

c# - 用于搜索日期的 SQL 查询

visual-studio-2015 - 在 Azure 应用服务上远程调试 ASP.NET Core 1.0 应用程序

asp.net - 在 Visual Studio 构建中恢复 Bower 组件