我正在创建一个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
答案 0 :(得分:0)
DNX项目可以引用.NET 4应用程序,但我不相信DNX运行时可以运行仅引用net40
项目的基于DNX的项目。 dnx451
是在.NET 4.5.1上运行的执行环境的名称,没有控制台应用程序不知道如何加载。