我遇到了构建错误,因为我正在使用的某些类在“DNX 4.5.1”而不是“DNX Core 5.0”中可用。
错误是:
找不到类型或命名空间'[someclass]'。
在“错误列表”窗口的项目列中,我看到DNX Core 5.0。
在上下文菜单中,选择了DNX 4.5.1。为什么VS.NET在上下文为4.5.1时尝试继续使用DNX Core 5.0?
答案 0 :(得分:35)
如果有些人仍然在努力解决这个问题,您可以通过从project.json文件中的框架引用中删除它来取消引用DNX Core 5.0。
部分
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
应该成为
"frameworks": {
"dnx451": { }
},
答案 1 :(得分:7)
而不是从project.json中完全删除DNXCORE50。 和以前一样,如果你将它包装在#if #endif中,你可以添加特定于框架的代码,如下面的代码所示。框架名称DNX451和DNXCORE50是众所周知的符号,实际上称为目标框架标记(TFM),并且在整个project.json文件,文件夹名称,NuGet包等中都是相同的。
只需应用条件声明:
public string Index(){
#if DNX451
//code logic here for DNX 4.5.1
#endif
#if DNXCORE50
//code logic here for DNX Core 5.0
#endif
}