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

The type or namespace name 'DotNetNuke' could not be found

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

The type or namespace name 'DotNetNuke' could not be found (are you missing a using directive or an assembly reference?)

我检查了我的 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 文件。如果我删除新的布局文件,项目构建正常。

添加新布局时我可能做错了什么?

您阅读的有关 .Net 框架版本的内容是正确的。你需要 4.7.2.

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

我通过 copy/pasting 模板的预先存在的布局之一成功添加它并重命名它。该项目现在构建良好。

啊,我明白错在哪里了。添加 Web(表单)用户控件并非完全错误,因为皮肤(或主题)是一种 Web 用户控件,并且具有相同的扩展名(.ascx)。

你要做的就是删除代码隐藏文件(.ascx.vb或.ascx.cs),并将ascx文件的第一行更改为

<%@ Control language="vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %>

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