installshield - How can I get File Version of basic msi installation package (setup.exe) in MSBuild -
i have setup.exe. basic msi installation package. use installshield create it. how can fileversion in msbuild script? cannot use getassemblyidentity task
<getassemblyidentity assemblyfiles="setup.exe"> <output taskparameter="assemblies" itemname="myassemblyidentities"/> </getassemblyidentity> because setup.exe not assembly , doesn't contain assembly manifest, error appears if invoke task:
could not load file or assembly 'setup.exe' or 1 of dependencies. module expected contain assembly manifest.
the fileversioninfo class provides functionality, , inline code allows using msbuild directly:
<?xml version="1.0" encoding="utf-8"?> <project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" > <usingtask taskname="getversion" taskfactory="codetaskfactory" assemblyfile="$(msbuildtoolspath)\microsoft.build.tasks.v4.0.dll" > <parametergroup> <thefile required="true" parametertype="system.string"/> <theversion parametertype="system.string" output="true" /> </parametergroup> <task> <code type="fragment" language="cs"> <![cdata[ theversion = system.diagnostics.fileversioninfo.getversioninfo( thefile ).fileversion; ]]> </code> </task> </usingtask> <target name="dogetversion"> <getversion thefile="$(myassemblyidentities)"> <output propertyname="fetchedversion" taskparameter="theversion" /> </getversion> <message text="version = $(fetchedversion)" /> </target> </project>
Comments
Post a Comment