当DNN模块开发接近尾声的时候,我们就该考虑怎么打包模块了。
要打包模块,关键在于后缀DNN文件的编写。其实写起来也很简单,下面大家看一下。
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>
<name>YourCompany.Demo</name>
<friendlyname>Demo</friendlyname>
<foldername>Demo</foldername>
<modulename>YourCompany.Demo</modulename>
<description>A Demo module</description>
<version>01.00.00</version>
<businesscontrollerclass>YourCompany.Modules.Demo.DemoController</businesscontrollerclass>
<modules>
<module>
<friendlyname>Demo</friendlyname>
<cachetime>60</cachetime>
<controls>
<control>
<src>DesktopModules/Demo/ViewDemo.ascx</src>
<type>View</type>
<helpurl></helpurl>
</control>
<control>
<key>Edit</key>
<title>Edit Content</title>
<src>DesktopModules/Demo/EditDemo.ascx</src>
<type>Edit</type>
<helpurl></helpurl>
</control>
<control>
<key>Settings</key>
<title>Demo Settings</title>
<src>DesktopModules/Demo/Settings.ascx</src>
<type>Edit</type>
<helpurl></helpurl>
</control>
</controls>
</module>
</modules>
<files>
<file>
<name>ViewDemo.ascx</name>
</file>
<file>
<name>ViewDemo.ascx.cs</name>
</file>
<file>
<name>EditDemo.ascx</name>
</file>
<file>
<name>EditDemo.ascx.cs</name>
</file>
<file>
<name>Settings.ascx</name>
</file>
<file>
<name>Settings.ascx.cs</name>
</file>
<file>
<path>App_LocalResources</path>
<name>ViewDemo.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>EditDemo.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>Settings.ascx.resx</name>
</file>
<file>
<path>[app_code]</path>
<name>DataProvider.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>DemoController.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>DemoInfo.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>SqlDataProvider.cs</name>
</file>
<file>
<name>01.00.00.SqlDataProvider</name>
</file>
<file>
<name>Uninstall.SqlDataProvider</name>
</file>
</files>
</folder>
</folders>
</dotnetnuke>
就我看来,要注意三点:
首先,foldername要与模块名称一致,即与DesktopModules、App code 下的模块文件夹名一致。不然,打包的时候,系统无法找到要压缩的文件。
其次,files元素里的文件要列全,不然少了就不好了。
最后,我打包的时候,前两步都做好了。但是列出的dll文件就是导不出来(我的是4.5.5的,当前最新版本,呵呵,还是有不足),怎么办,其实我也不知道。不过,我们可以双击系统刚生成的ZIP文件,再添加上系统忘记添加的dll就可以了。这样手工一点,照样可以做出我们想要的安装文件。
在从DNN模板你建一个web试试,好,安装刚做好的模块。结果,我刚刚开发的DNN模块导入成功。YE
要打包模块,关键在于后缀DNN文件的编写。其实写起来也很简单,下面大家看一下。
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>
<name>YourCompany.Demo</name>
<friendlyname>Demo</friendlyname>
<foldername>Demo</foldername>
<modulename>YourCompany.Demo</modulename>
<description>A Demo module</description>
<version>01.00.00</version>
<businesscontrollerclass>YourCompany.Modules.Demo.DemoController</businesscontrollerclass>
<modules>
<module>
<friendlyname>Demo</friendlyname>
<cachetime>60</cachetime>
<controls>
<control>
<src>DesktopModules/Demo/ViewDemo.ascx</src>
<type>View</type>
<helpurl></helpurl>
</control>
<control>
<key>Edit</key>
<title>Edit Content</title>
<src>DesktopModules/Demo/EditDemo.ascx</src>
<type>Edit</type>
<helpurl></helpurl>
</control>
<control>
<key>Settings</key>
<title>Demo Settings</title>
<src>DesktopModules/Demo/Settings.ascx</src>
<type>Edit</type>
<helpurl></helpurl>
</control>
</controls>
</module>
</modules>
<files>
<file>
<name>ViewDemo.ascx</name>
</file>
<file>
<name>ViewDemo.ascx.cs</name>
</file>
<file>
<name>EditDemo.ascx</name>
</file>
<file>
<name>EditDemo.ascx.cs</name>
</file>
<file>
<name>Settings.ascx</name>
</file>
<file>
<name>Settings.ascx.cs</name>
</file>
<file>
<path>App_LocalResources</path>
<name>ViewDemo.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>EditDemo.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>Settings.ascx.resx</name>
</file>
<file>
<path>[app_code]</path>
<name>DataProvider.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>DemoController.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>DemoInfo.cs</name>
</file>
<file>
<path>[app_code]</path>
<name>SqlDataProvider.cs</name>
</file>
<file>
<name>01.00.00.SqlDataProvider</name>
</file>
<file>
<name>Uninstall.SqlDataProvider</name>
</file>
</files>
</folder>
</folders>
</dotnetnuke>
就我看来,要注意三点:
首先,foldername要与模块名称一致,即与DesktopModules、App code 下的模块文件夹名一致。不然,打包的时候,系统无法找到要压缩的文件。
其次,files元素里的文件要列全,不然少了就不好了。
最后,我打包的时候,前两步都做好了。但是列出的dll文件就是导不出来(我的是4.5.5的,当前最新版本,呵呵,还是有不足),怎么办,其实我也不知道。不过,我们可以双击系统刚生成的ZIP文件,再添加上系统忘记添加的dll就可以了。这样手工一点,照样可以做出我们想要的安装文件。
在从DNN模板你建一个web试试,好,安装刚做好的模块。结果,我刚刚开发的DNN模块导入成功。YE