我正在开发一个库,我希望能够为传统的.NET Framework编译它,还能为.NET核心编译它。我从一个经典的VS解决方案开始,它适用于.NET Framework 4.5。然后我添加了一个project.json
文件,如下所示:
{
"version": "0.1.3-*",
"frameworks": {
"net45": {
"dependencies": {
}
},
"dnxcore50": {
"dependencies": {
"NETStandard.Library": "1.0.0-rc2-23811",
"System.Net.Http": "4.0.1-beta-23516",
"System.Security.Principal": "4.0.1-beta-23516",
"System.Security.Cryptography.Hashing.Algorithms": "4.0.0-beta-23225",
"System.Security.Cryptography.X509Certificates": "4.0.0-beta-23516",
"System.Xml.XDocument": "4.0.11-beta-23516"
}
}
}
}
现在它可以很好地编译.NET内核,但VS 2015.1抱怨我错过了project.json
中的运行时部分。我将以下代码添加到文件中:
"runtimes": {
"win": {}
}
我尝试在frameworks / net45级别添加它,但这并没有帮助。它应该在根级添加,但现在它抱怨以下错误
< 组件>为< 程序集>提供了编译时引用程序集。在DNXCore上,Version = v5.0,但没有与win兼容的运行时程序集。
有很多关于如何将project.json文件与dnxcore一起使用的文档,但是关于将project.json与传统.NET框架一起使用的文档很少。这很遗憾,因为它不鼓励开发人员将他们的库移植到dnxcore,同时保持与传统.NET框架的兼容性,而传统的.NET框架将是未来几年最重要的框架。