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

时间:2015-05-11 19:49:31

标签: 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)ClassLibrary1
   2)ConsoleApp1

ClassLibrary1 project.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。运行)的情况下运行。但是它将使用dnu build构建!为什么? 这是我离开dnx451并尝试运行它时出现的错误。

  

System.InvalidOperationException:无法解决以下问题   目标框架的依赖关系' DNX,Version = v4.5.1':          Microsoft.Bcl 1.1.10          Newtonsoft.Json 6.0.8

1 个答案:

答案 0 :(得分:0)

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