我只是在dotnetnuke中寻找某个选项,或者在dnn的某个实用工具或某个安装程序模块中寻找可以使我的动态桌面模块的安装程序(.zip软件包)。
当我尝试通过"主机"->"模块定义"创建模块程序包时...它仅创建那些确实存在于该模块文件夹中的文件的程序包,但我希望它还应包括相关的DLL和数据库脚本,请指导我如何包括相关/相关的dll和脚本文件。
谢谢,
报告发布
我建议使用NAnt来自动化每个模块的包装过程。这需要一些设置和配置,但是如果您频繁打包模块,随着时间的流逝,它将节省大量的工作。它还确保您每次打包模块时都以相同的方式一致地构建软件包。
步骤:
1)下载NAnt并将其解压缩到计算机上的某个位置。我建议使用NAnt的0.86 beta 1版本。
2)将NAnt作为"外部工具"并入Visual Studio。
Bill Simser指示:
3)将构建脚本合并到您的解决方案中
作为示例,这是我创建的"告诉朋友"模块的构建文件。也提供该模块的完整源代码。
您将要验证所有初始属性对于您的模块均有效。例如,您肯定要更改" project.name "," solution.file "和" project.dll "属性。但是您可能还需要更改其他属性(references目录是不错的选择,因为您可能没有在文件系统上以相同的方式构造模块的依赖程序集)。
<?xml version="1.0" encoding="utf-8" ?>
<project xmlns="http://nant.sf.net/release/0.86-beta1/nant.xsd" name="Engage: Tell A Friend" basedir="." default="package">
<property name="build" value="true" overwrite="false"/>
<property name="bin.directory" value="..\\..\\bin" overwrite="false"/>
<property name="project.config" value="release"/>
<property name="project.name" value="TellAFriend"/>
<property name="solution.file" value="Engage${project.name}.sln"/>
<property name="references.directory" value="References"/>
<property name="project.dll" value="${bin.directory}\\Engage${project.name}.dll"/>
<patternset id="content.fileset">
<include name="**/*.ascx" />
<include name="**/*.aspx" />
<include name="**/*.asmx" />
<include name="**/*.resx" />
<include name="**/*.html" />
<include name="**/*.htm" />
<include name="**/*.css" />
<include name="**/*.jpg" />
<include name="**/*.gif" />
<include name="**/*.png" />
<include name="**/*.pdf" />
<include name="**/*.xml"/>
<include name="**/*.xsd"/>
<exclude name="Licenses/EULA-*.htm"/>
<exclude name="ReleaseNotes_*.htm"/>
<exclude name="??.??.??.txt" />
<exclude name="_ReSharper.*/**"/>
</patternset>
<patternset id="source.fileset">
<include name="**/*.js"/>
<include name="**/*.cs"/>
<include name="**/*.vb"/>
<include name="**/*.sln"/>
<include name="**/*.csproj"/>
<include name="**/*.vbproj"/>
<include name="**/*.build"/>
<include name="**/*.dnn"/>
<include name="**/*.docx"/>
</patternset>
<target name="build" description="Builds the solution" if="${build}">
<exec program="${environment::get-variable('windir')}\\Microsoft.NET\\Framework\\v3.5\\msbuild.exe" failonerror="true">
</exec>
</target>
<target name="get-version" depends="build" description="Sets the project.version property to the first three numbers from the version of the main assembly for this module">
<property name="version" value="${assemblyname::get-version(assembly::get-name(assembly::load-from-file(project.dll)))}" />
<property name="project.version" value="${string::substring(version,0,string::last-index-of(version,'.'))}" />
</target>
<target name="package" depends="get-version" description="Creates packages for this module, one for each three licenses and version of DNN (4 and 5)">
<property name="package.directory" value="package"/>
<property name="package.name" value="Resources.zip"/>
<property name="package.license" value="Free"/>
<property name="includeSource" value="false"/>
<call target="setup-package-files"/>
<call target="create-resources-zip"/>
<call target="create-packages"/>
<property name="includeSource" value="true"/>
<call target="add-sources-to-resource-zip"/>
<call target="create-packages"/>
<delete file="${package.directory}\\${package.name}" failonerror="false"/>
<delete dir="${package.directory}\\temp" failonerror="false"/>
<call target="project-specific-tasks"/>
</target>
<target name="create-resources-zip" description="Creates the Resources.zip file for content (Install package) files">
<mkdir dir="${package.directory}" failonerror="false"/>
<mkdir dir="${package.directory}/temp" failonerror="false" />
<mkdir dir="${package.directory}/temp/resources" failonerror="false" />
<copy todir="${package.directory}/temp/resources" flatten="false">
<fileset>
<patternset refid="content.fileset"/>
<exclude name="obj/**"/>
<exclude name="${package.directory}/**"/>
</fileset>
</copy>
<zip zipfile="${package.directory}/temp/package/${package.name}">
<fileset basedir="${package.directory}/temp/resources">
<include name="**/*"/>
</fileset>
</zip>
</target>
<target name="add-sources-to-resource-zip" description="Adds the files for the Source package to the Resources.zip file">
<copy todir="${package.directory}/temp/resources" flatten="false">
<fileset>
<patternset refid="source.fileset"/>
<exclude name="obj/**"/>
<exclude name="${package.directory}/**"/>
</fileset>
</copy>
<zip zipfile="${package.directory}/temp/package/${package.name}">
<fileset basedir="${package.directory}/temp/resources">
<include name="**/*"/>
</fileset>
</zip>
</target>
<target name="setup-package-files" description="Copies common package files to the temp/package directory, and sets version-dependent attributes in the DNN 5 manifest file">
<property name="releaseNotes.file" value="ReleaseNotes_${project.version}.htm"/>
<property name="license.file" value="EULA-${package.license}.htm"/>
<mkdir dir="${package.directory}/temp/package" failonerror="false"/>
<copy todir="${package.directory}/temp/package" flatten="true">
<fileset>
<include name="${releaseNotes.file}"/>
<include name="??.??.??.txt" />
<include name="ReadMe.txt" />
<include name="**/*.SqlDataProvider"/>
<include name="**/*.4.dnn"/>
<include name="**/*.5.dnn"/>
<include name="Licenses/${license.file}"/>
</fileset>
</copy>
<copy todir="${package.directory}/temp/package/bin" flatten="true">
<fileset>
<include name="${project.dll}"/>
<include name="${references.directory}/*.dll"/>
<exclude name="${references.directory}/DotNetNuke.dll"/>
<exclude name="${references.directory}/DotNetNuke.WebUtility.dll"/>
<exclude name="${references.directory}/Microsoft.ApplicationBlocks.Data.dll"/>
</fileset>
</copy>
<fileset basedir="${package.directory}/temp/package">
<include name="**"/>
</fileset>
</attrib>
<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.5.dnn" value="${license.file}" xpath="dotnetnuke/packages/package/license/@src"/>
<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.5.dnn" value="${releaseNotes.file}" xpath="dotnetnuke/packages/package/releaseNotes/@src"/>
<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.5.dnn" value="${project.version}" xpath="dotnetnuke/packages/package/@version"/>
<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.5.dnn" value="${project.version}" xpath="dotnetnuke/packages/package/components/component[@type='Script']/scripts/script[@type='UnInstall']/version"/>
<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.5.dnn" value="${project.version}" xpath="dotnetnuke/packages/package/components/component[@type='Assembly']/assemblies/assembly[version='REPLACED BY NANT']/version"/>
<!--<xmlpoke file="${package.directory}/temp/package/Engage${project.name}.4.dnn" value="${project.version}" xpath="dotnetnuke/folders/folder/version"/>-->
</target>
<target name="create-packages" description="For the given license and type, creates packages for DNN 4 and DNN 5">
<property name="dnn.version" value="4"/>
<call target="zip-package"/>
<property name="dnn.version" value="5"/>
<call target="zip-package"/>
</target>
<target name="zip-package" description="Zips up the files in the temp/package directory, getting the correct manifest file and using the correct naming convention">
<property name="package.type" value="Install"/>
<if test="${includeSource}">
<property name="package.type" value="Source"/>
</if>
<zip zipfile="${package.directory}/${project.name}_${package.license}_${project.version}_${package.type}_${dnn.version}.zip">
<fileset basedir="${package.directory}/temp/package">
<include name="**/*"/>
<exclude name="**/*.4.dnn" if="${dnn.version=='5'}"/>
<exclude name="**/*.5.dnn" if="${dnn.version=='4'}"/>
</fileset>
</zip>
</target>
<target name="combine-enterprise" description="Combines the Install and Source enterprise packages into one .zip file">
<zip zipfile="${package.directory}/${project.name}_${package.license}_${project.version}_${dnn.version}.zip">
<fileset basedir="${package.directory}">
<include name="${project.name}_${package.license}_${project.version}_Install_${dnn.version}.zip"/>
<include name="${project.name}_${package.license}_${project.version}_Source_${dnn.version}.zip"/>
</fileset>
</zip>
<delete file="${package.directory}/${project.name}_${package.license}_${project.version}_Install_${dnn.version}.zip" failonerror="false"/>
<delete file="${package.directory}/${project.name}_${package.license}_${project.version}_Source_${dnn.version}.zip" failonerror="false"/>
</target>
<target name="project-specific-tasks" description="Place tasks specific to the current project in this task">
</target>
</project>
4)运行执行构建脚本的外部工具,并验证您的软件包。
其他资源:
一种更简单的方法(即无需学习Nant)将是使用Visual Studio的构建前和构建后事件(请参阅模块项目的项目属性)。
您也可以调用批处理文件来完成工作,如下所述:
重新讨论了模块软件包的构建。
希望这会有所帮助,
皮特
以上就是短码网小编为大家整理的《dotnetnuke模块安装程序》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《dotnetnuke模块安装程序》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/6de63b13684.html