build automation - How to verify if the product code and product version have been updated using MSBuild support for Installshield -
i'm trying build installshield project msbuild , tfs 2013. followed steps required override product code indicated here. first, created .isproj file , managed generate installer successfully. however, product code seems not changed. check file setup.ini , noticed product guid still same value of product code in .ism file. there way verify product code , product version have been changed?
@update
it worked finally, able verify newly generated product code using orca.
chris's script works well!
this how it:
in ism release view (build tab) set release location \installer instead of in path variables declare isbuilddir path variable , give default value of isprojectdatafolder
<project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" toolsversion="4.0" defaulttargets="build"> <propertygroup> <msiproductversion>$([system.text.regularexpressions.regex]::match($(tf_build_buildnumber), "\d+.\d+.\d+.\d+"))</msiproductversion> <configuration>debug</configuration> <installshieldproductconfiguration>productconfigname</installshieldproductconfiguration> <installshieldrelease>releasename</installshieldrelease> <installshieldproductversion>$(msiproductversion)</installshieldproductversion> <msiproductcode>$([system.guid]::newguid().tostring("b").toupper())</msiproductcode> <installshieldbuilddependson>prebuild</installshieldbuilddependson> </propertygroup> <itemgroup> <installshieldpathvariableoverrides include="$(outdir)"> <pathvariable>isbuilddir</pathvariable> </installshieldpathvariableoverrides> </itemgroup> <itemgroup> <installshieldpropertyoverrides include="$(msiproductcode)"> <property>productcode</property> </installshieldpropertyoverrides> </itemgroup> <itemgroup> <installshieldproject include="$(msbuildprojectdirectory)\$(msbuildprojectname).ism"/> <installshieldmergemodulepath include="$(msbuildprojectdirectory)\msm"/> </itemgroup> <target name="prebuild"> <exec command="attrib -s -h -r /s "$(msbuildprojectdirectory)\*.*"" ignoreexitcode="true" continueonerror="true"/> </target> <import project="$(msbuildextensionspath32)\installshield\2012\installshield.targets"/> </project>
Comments
Post a Comment