我正在创建一个 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/