找不到类型或名称空间名称'DotNetNuke'

时间:2019-12-13 15:57:20

标签: themes dotnetnuke skin

几个月前,我使用Visual Studio的Christoc模板为DNN构建了自定义主题。我今天需要做一些小的HTML调整,所以我重新打开解决方案并进行了更改,但是当我重建项目时,我遇到了一些构建错误,大概是因为它不再能够识别我的DNN dll:

  

找不到类型或名称空间名称'DotNetNuke'(您是否缺少using指令或程序集引用?)

我检查了C:\path_to\dnndev.me\bin\DotNetNuke.dll,它仍然存在,所以我不确定为什么Visual Studio看不到它。

最初构建皮肤时,我正在运行DNN 9.1.1,但此后已升级到9.3.2。会导致我的问题吗?

我读过elsewhere,说我可能是在不正确的.NET Framework版本上构建的,但是我不知道DNN 9.3.2使用哪个版本,因此我尝试了几种不同的版本,结果没有变化。

我该如何解决这个问题?

更新:

根据这里的答案,我使用.NET 4.7.2进行了重建,但是它并不能解决我的问题。

更新2:

好的,所以我所做的小更改是添加了另一个布局页面,例如模板随附的Home.ascx和Edit.ascx文件。如果我删除了新的布局文件,项目将正常运行。

添加新布局时我会怎么做?

3 个答案:

答案 0 :(得分:0)

您所读到的有关.Net框架版本的信息是正确的。您需要4.7.2。

答案 1 :(得分:0)

问题是我创建了一个新布局。我右键单击该项目,然后选择Add > New Item,然后选择Web Forms User Control。这是添加新布局的错误方法。

我通过复制/粘贴模板的现有布局之一并重命名成功添加了它。该项目现在构建良好。

答案 2 :(得分:0)

啊,现在我知道出了什么问题。添加Web(表单)用户控件并不是完全错误,因为外观(或主题)是Web用户控件的一种,并且具有相同的扩展名(.ascx)。

您要做的是删除文件(.ascx.vb或.ascx.cs)后面的代码,并将ascx文件的第一行更改为

@media only screen and (min-width: 960px) {
  #outro {
    display: flex;
    flex-wrap: wrap;
  }
  #outro h4 {
    flex: 100%;
    width: 100%;
    color: #FFE121;
    font-size: 40px;
    text-align: center;
    padding: 30px 10px;
    border-top: solid 2px #FFFFF6;
  }
  #outro img {
    padding: 10px 10px;
    flex: 1;
    padding-bottom: 40px;
    justify-content: center;
    align-items: center;
  }
  #outro img:first-of-type {
    flex: 2;
    order: 2;
  }
  #outro img:last-of-type {
    order: 3;
    padding-bottom: 44px;
  }
}

(但是复制另一个皮肤文件也是一个很好的解决方案,因为很可能您已经拥有对皮肤对象的大多数引用了)