dotnetnuke - 如何在一个 DNN 清单文件中安装多个包?
问题描述
我正在为 DNN 9.2 编写一个自定义模块,但无法将压缩文件安装到我的本地 DNN 实例中。我觉得这是由于解决方案的清单(DNN)文件。清单包含许多<package>
节点,我需要安装的每个模块一个。清单示例如下:
<package name="Modoule1" type="Module" version="0.0.2">
<friendlyName>Module1</friendlyName>
<description>Display store links like cart/order history/account/help.</description>
<iconFile></iconFile>
<owner>
</owner>
<license src="License.txt"></license>
<releaseNotes src="ReleaseNotes.txt"></releaseNotes>
<azureCompatible>true</azureCompatible>
<dependencies>
<dependency type="CoreVersion">09.00.00</dependency>
</dependencies>
<components>
<component type="Script">
<scripts>
<basePath>DesktopModules\MyModule</basePath>
<script type="Install">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>00.00.01.SqlDataProvider</name>
<version>00.00.01</version>
</script>
<script type="UnInstall">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>Uninstall.SqlDataProvider</name>
<version>00.00.01</version>
</script>
</scripts>
</component>
<component type="Module">
<desktopModule>
<moduleName>Module1</moduleName>
<folderName>Module1</folderName>
<businessControllerClass>ModuleSolution.Components.FeatureController</businessControllerClass>
<supportedFeatures>
<supportedFeature>IPortable</supportedFeature>
<supportedFeature>ISearchable</supportedFeature>
<supportedFeature>IUpgradeable</supportedFeature>
</supportedFeatures>
<moduleDefinitions>
<moduleDefinition>
<friendlyName>Module1</friendlyName>
<defaultCacheTime>0</defaultCacheTime>
<moduleControls>
<moduleControl>
<controlKey></controlKey>
<controlSrc>DesktopModules/MyModule/Module1.ascx</controlSrc>
<supportsPartialRendering>False</supportsPartialRendering>
<controlTitle>Module Content</controlTitle>
<controlType>View</controlType>
<iconFile />
<helpUrl />
<viewOrder>0</viewOrder>
<supportsPopUps>True</supportsPopUps>
</moduleControl>
<moduleControl>
<controlKey>Module1 Settings</controlKey>
<controlSrc>DesktopModules/MyModule/Module1Settings.ascx</controlSrc>
<supportPartialRendering>False</supportPartialRendering>
<controlTitle>Module1 Settings</controlTitle>
<controlType>Edit</controlType>
<iconFile/>
<helpUrl/>
<viewOrder>0</viewOrder>
</moduleControl>
</moduleControls>
</moduleDefinition>
</moduleDefinitions>
</desktopModule>
<eventMessage>
<processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke</processorType>
<processorCommand>UpgradeModule</processorCommand>
<attributes>
<businessControllerClass>MyModule.Components.FeatureController</businessControllerClass>
<desktopModuleID>[DESKTOPMODULEID]</desktopModuleID>
<upgradeVersionsList>00.00.01</upgradeVersionsList>
</attributes>
</eventMessage>
</component>
<component type="Assembly">
<assemblies>
<assembly>
<name>MyModule.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>Library1.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>Library2.dll</name>
<path>bin</path>
</assembly>
</assemblies>
</component>
<component type="ResourceFile">
<resourceFiles>
<basePath>DesktopModules/MyModule</basePath>
<resourceFile>
<name>Resources.zip</name>
</resourceFile>
</resourceFiles>
</component>
</components>
</package>
DNN 扩展安装程序状态
Zip File Upload Failed:
An unknown error has occured. Please check your installation zip file and try again.
Common issues with bad installation files:
Zip file size is too large, check your IIS settings for max upload file size.
Missing resources in the zip file.
Invalid files in the package.
File extension is not .zip.
Check that you are logged in.
没有错误写入 DNN 数据库中的 EventLog 表。如何修改上述内容以确保清单文件格式正确?
解决方案
我对多个包使用以下格式。
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="xxx" type="Module" version="01.00.00">
//rest of nodes
</package>
<package name="xxx" type="SkinObject" version="01.00.00">
//rest of nodes
</package>
</packages>
</dotnetnuke>
如果这仍然不起作用,请获取另一个模块的.dnn
文件并比较丢失的节点等。
推荐阅读
- c - Copying Array Using Pointers
- drupal-8 - 在视图中创建的路由的自定义权限
- html - 如何在移动设备上制作 CSS 网格堆栈?
- reactjs - 如何使用带有 pdf.worker.js 的 react-pdf 访问从 pdf 文件生成的图像
- git - 初始化的 gitlab repo 有远程分离头
- css - 锚标签未正确居中
- node.js - NodeJS setInterval 并向客户端发送数据
- crystal-reports - 如何查看和编辑已被有条件地抑制而不解除抑制的部分?
- c - c socket客户端程序中2个进程之间共享内存的使用导致分段错误
- java - 如何将 JLink 与 AppCDS 一起使用