【问题标题】:The type or namespace name 'DotNetNuke' could not be found找不到类型或命名空间名称“DotNetNuke”
【发布时间】:2019-12-13 15:57:20
【问题描述】:

几个月前,我使用 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 框架版本上构建,但我不知道 DNN 9.3.2 使用哪个版本,所以我尝试了几个不同的版本,结果没有变化。

我该如何解决这个问题?

更新:

根据此处的答案,我使用 .NET 4.7.2 进行了重建,但没有解决我的问题。

更新 2:

好的,所以我所做的小改动是添加了另一个布局页面,例如模板附带的 Home.ascx 和 Edit.ascx 文件。如果我删除新的布局文件,项目就可以正常构建。

添加新布局时我会做错什么?

【问题讨论】:

    标签: themes dotnetnuke skin


    【解决方案1】:

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

    【讨论】:

    • 我用 4.7.2 重建,但它没有解决问题。
    • 抱歉,DNN 9.4.2 需要 4.7.2,而不是 9.3.2。 - 请尝试从引用中删除 DotNetNuke.dll,然后重新添加。
    • 9.3.2 需要哪个版本?
    • 我删除了 DotNetNuke.dll 和 DotNetNuke.Web.Client.dll 没有任何效果。
    • 也可能是该错误是由另一个错误引起的 - 可能是某些已弃用的函数或属性。尝试首先解决列表末尾的错误,也许这就是原因......(对不起,蓝色的镜头,但由于我试图在不知道您的设置的情况下提供帮助,这有点难......)
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-12
        • 2011-05-13
        • 2013-03-25
        • 2012-06-19
        • 2017-11-29
        • 2012-09-27
        • 2011-05-06
        相关资源
        最近更新 更多