Blogs

Auto Packaging Multiple Modules with DotNetNuke

07 Jul

Like many people I have been building DotNetNuke Modules using Chris Hammond's DotNetNuke Module Template.  It is a great template set and works well in 99.9% of cases.  However, recently I have been building more and more complex module solutions for customers where within a single project I have a need to package up two or more "distinct" modules.  Therefore I have one DotNetNuke Module Manifest and it will install multiple modules.  Overall the process works great, but there is one small nuance, the filename, if you have two modules you will get xx.xx.xx.yy.yy.yy as the filename, which is the version of module 1, and the version of module two.  In my case I just want the first module to show, and in this post I'll show you how.

The Modification

Thankfully the change is very simple.  Within your "ModulePackage.targets" file that is in the "BuildScripts" folder we need to make one modification.  Take the existing "XmlRead" node of the document and replace it with the following.

<XmlRead Prefix="n"
    Namespace="http://schemas.microsoft.com/developer/msbuild/2003"
    XPath="dotnetnuke/packages/package[1]/@version"
    XmlFileName="$(DNNFileName).dnn">
      <Output TaskParameter="Value" PropertyName="Version" />
</XmlRead>

If you compare this to the value before you will notice only one small change which is the addition of [1] after the package portion of the XPath.  This instructs the process to ONLY read the first package's version attribute, rather than combining the values from all packages.

I hope that this quick tip was helpful to those of you working with more complex module deployment solutions.  Feel free to share feedback below.

This post was cross-posted to my DotNetNuke.com Blog.

tags: DNN, DNN Development, Quick Tips
comments powered by Disqus

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.