无法从源代码创建DNN调查模块

时间:2011-08-04 22:37:00

标签: vb.net module dotnetnuke survey

我的老板要我设置DotNetNuke's Survey Module并为客户进行一些自定义更改。但是我无法让简单的代码正常运行!

这是我到目前为止所做的:

  1. 下载了来源和安装文件夹 http://dnnsurvey.codeplex.com/releases/view/65186
  2. 创建了一个新的VB Web应用程序项目
  3. 取出所有默认页面
  4. 将Survey源代码复制到中的VB Web应用程序项目相同的结构
  5. 创建一个批处理脚本,创建一个与DNN安装文件夹相同的安装文件夹(通过在其上运行文件夹差异进行双重检查,所有文件/文件夹都相同)
  6. 使用7-zip
  7. 压缩我的安装文件夹

    源代码编译完美。但即使文件/文件夹相同,DNN的压缩包也可以在我的DNN网站上正常工作,而我自己的压缩包将失败并显示以下错误消息:

      

    错误:调查目前无法使用。   DotNetNuke.Services.Exceptions.ModuleLoadException:无法加载类型'DotNetNuke.Modules.Survey.survey'。 ---> System.Web.HttpParseException:无法加载类型'DotNetNuke.Modules.Survey.survey'。 ---> System.Web.HttpParseException:无法加载类型'DotNetNuke.Modules.Survey.survey'。 ---> System.Web.HttpException:无法加载类型'DotNetNuke.Modules.Survey.survey'。在System.Web.UI上的System.Web.UI.TemplateParser.GetType(String typeName,Boolean ignoreCase,Boolean throwOnError)处于System.Web.UI.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName,String codeFileBaseTypeName,String src,Assembly assembly)。 TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData)---内部异常堆栈跟踪的结束---在System.Web.UI.TemplateParser.ParseStringInternal的System.Web.UI.TemplateParser.ProcessException(Exception ex)中(String text,Encoding fileEncoding)在System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,Encoding fileEncoding)---内部异常堆栈跟踪结束---在System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,Encoding在System.Web.Compilation的System.Web.UI.TemplateParser.Parse()处的System.Web.UI.TemplateParser.ParseInternal()处的System.Web.UI.TemplateParser.ParseFile(String physicalPath,VirtualPath virtualPath)上的fileEncoding。 BaseTemplateBuildProvide位于System.Web.Compilation的System.Web.Compilation.BuildProvidersCompiler.PerformBuild()的System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()的System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)中的r.get_CodeCompilerType()。位于System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert的System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的BuildManager.CompileWebFile(VirtualPath virtualPath)(HttpContext上下文,VirtualPath virtualPath,布尔noBuild, DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl()中DotNetNuke.UI.ControlUtilities.LoadControl [T](TemplateControl containerControl,String ControlSrc)上的System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath)的布尔值allowCrossApp,布尔值allowBuildInPrecompile) ---内部异常堆栈跟踪结束---

    我已经在DNN论坛上询问了这个问题,但他们对此没什么好说的:(所以,我想我也会尝试StackOverflow。

    有人知道问题是什么吗?非常感谢提前!

2 个答案:

答案 0 :(得分:0)

如果要正确创建包,则必须先安装dnn实例中的模块。完成后,你做了正确的工作直到第4步。在第4步之后,我通常会做以下事情:

  • 转到项目属性,并将bin目录路径指向父dnn安装的bin目录
  • 添加dotentnuke.dll和微软数据acecss应用程序博客dll
  • 的参考
  • 重建项目

一旦您可以正确编译应用程序,您就可以自定义它了。

始终使用dnn的模块创建向导来创建包。它是一种更简单,更无错误的包装和交付模块的方式。

如果您需要任何其他帮助,请告诉我

答案 1 :(得分:0)

我最终自己解决了这个问题。这些是我采取的步骤:

  1. 删除了所有名称空间DotNetNuke.Modules.Survey声明
  2. 删除了用于调查,设置的ascx,ascx.vb和设计器文件 和EditSurvey
  3. 使用这些名称创建新的空的(但使用“Survey”代替 “调查”)
  4. 将ascx代码复制/粘贴到每个ascx文件中(并更改 DotNetNuke.Modules.survey to DotNetNuke.Modules.Survey)
  5. 做了一个构建
  6. 将ascx.vb代码复制/粘贴到每个ascx.vb文件中(并删除 这些文件中的命名空间声明)
  7. 这次是100%成功的构建
  8. 解决问题的奇怪方法,但它奏效了。 :3