<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Installation Developer</title>
	<atom:link href="http://www.installationdeveloper.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.installationdeveloper.com</link>
	<description>InstallShield Training - InstallShield Tutorials</description>
	<lastBuildDate>Tue, 27 Jul 2010 14:57:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installing a New Component in a Minor Upgrade in InstallShield</title>
		<link>http://www.installationdeveloper.com/1020/installing-a-new-component-in-a-minor-upgrade-in-installshield/</link>
		<comments>http://www.installationdeveloper.com/1020/installing-a-new-component-in-a-minor-upgrade-in-installshield/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 14:06:25 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=1020</guid>
		<description><![CDATA[I have created a lot of minor upgrades before, but recently I had a problem that I could not figure out.  Remember that in a Minor Upgrade, the Product Version and Package Code both change.
The Minor Upgrade I was creating installed a new component and file into a new folder.  All other components [...]]]></description>
			<content:encoded><![CDATA[<p>I have created a lot of minor upgrades before, but recently I had a problem that I could not figure out.  Remember that in a <strong>Minor Upgrade</strong>, the <strong>Product Version</strong> and <strong>Package Code</strong> both change.</p>
<p>The <strong>Minor Upgrade</strong> I was creating installed a new component and file into a new folder.  All other components in the original install were still there, and the <strong>Component Codes</strong> were the same.  However, no matter what I did, the new component was not being installed.</p>
<p>I read some posts in the <strong>InstallShield community forum</strong> and found one that was particularly interesting.  It said that you could force the installation of a new component in a <strong>Minor Upgrad</strong>e by setting the <strong>ADDLOCAL</strong> property.  However, I could not find any detailed information on how to do this.  I eventually abandoned that idea in favor of something else.</p>
<p>I read on <strong>MSDN</strong> that in a <strong>Minor Upgrade</strong>, you can create a new child feature of an existing feature and require that it be installed.  You do this by setting the <strong>msidbFeatureAttributesFollowParent</strong> and <strong>msidbFeatureAttributesUIDisallowAbsent</strong> bits of the child feature&#8217;s attribute in the <strong>Feature</strong> table.  So I created a new child feature of the existing feature, associated the new component with that feature, and set those bits in the Feature Table.  That worked.</p>
<p>Hopefully, this will help someone in the future.</p>
<p>The article on <strong>MSDN</strong> is about <strong>Product Codes</strong>, but also has information pertaining to <strong>Minor Upgrdes</strong>.  Here&#8217;s the link:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/aa367850(VS.85).aspx">Changing the Product Code</a></p>
<p>Update 07/27/2010: This change only worked for the first two hours I was testing it.  I actually found out that if you create a new child feature and add a new component to that, the new component will not be installed.  I&#8217;m not sure why it worked at first, but I had to come up with a new solution.  More on that later.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/1020/installing-a-new-component-in-a-minor-upgrade-in-installshield/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Develop Standard Procedures for InstallShield Development</title>
		<link>http://www.installationdeveloper.com/1000/use-standard-operating-procedures-in-installation-development/</link>
		<comments>http://www.installationdeveloper.com/1000/use-standard-operating-procedures-in-installation-development/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 14:53:57 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=1000</guid>
		<description><![CDATA[In InstallShield development, I find there are a lot of tasks I do over and over again. Since, I don&#8217;t want to figure them out each time, I like to write them down.
You can call this making notes, or call it Standard Operating Procedures (SOP), but I find it saves me a lot of time [...]]]></description>
			<content:encoded><![CDATA[<p>In <strong>InstallShield</strong> development, I find there are a lot of tasks I do over and over again. Since, I don&#8217;t want to figure them out each time, I like to write them down.</p>
<p>You can call this making notes, or call it <strong>Standard Operating Procedures</strong> (SOP), but I find it saves me a lot of time because I don&#8217;t have to reinvent the wheel each time.  I&#8217;ll give you an example of what I&#8217;m talking about.</p>
<p>Suppose I find myself creating a custom type of release where it is like a CD-ROM, but the installation is cached on the local machine in order for use during advertised installs (install-on-demand).  Here are the steps I would perform in the Release Wizard each time I do it:<br />
<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Product Configuration</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROJECT_ASSISTANT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Specify a Release</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Custom_CdRom<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Filtering Setti</strong>ngs<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Setup Langu</strong>ages<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Media Type</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Web Type</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One Executable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>One-Click Install</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Setup Launcher</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Include MSI Engine<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Suppress warning<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSI Engine Version 3.1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Delay engine reboot<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Windows Installer Location</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download engine from the Web<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Local Machine</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Cache installation on local machine<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[AppDataFolder]Wavepoint Studios\Mega View<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Digital Signature</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Certificate URL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http:/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/www.WavepointStudios.net<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Digital certificate</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\wavepointstudios.pfx<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Private key file</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\wavepointstudios.pvk<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Certificate password</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password12345<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Digital Signature Options</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Sign Windows Installer Package<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Sign Setup.exe<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Sign files in package<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[INSTALLDIR]Mega View.exe<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Password &#038; Cop</strong>yright<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>.NET Framework</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unselect Include or set up .NET Frameworks<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Advanced Settings</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Summary</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finish<br />
<br/><br />
This idea is just a suggestion.  It&#8217;s something I use all the time and it saves me a lot of time.</p>
<p>Try it out.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/1000/use-standard-operating-procedures-in-installation-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gee, Each New Version of InstallShield Has New Redistributables</title>
		<link>http://www.installationdeveloper.com/985/each-new-version-of-installshield-has-new-redistributables/</link>
		<comments>http://www.installationdeveloper.com/985/each-new-version-of-installshield-has-new-redistributables/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 02:29:32 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=985</guid>
		<description><![CDATA[I received an interesting email today from someone who wanted to know if there was a definitive way of updating installations when a new version of InstallShield is released.  He remarked that there are always new redistributables (prerequisites, merge modules, and objects) in each new InstallShield version, and he frequently has trouble updating the [...]]]></description>
			<content:encoded><![CDATA[<p>I received an interesting email today from someone who wanted to know if there was a definitive way of updating installations when a new version of <strong>InstallShield</strong> is released.  He remarked that there are always new redistributables (prerequisites, merge modules, and objects) in each new <strong>InstallShield</strong> version, and he frequently has trouble updating the company&#8217;s installers with these new redistributables.  The question again, &#8220;Is there a definitive guide to doing this?&#8221;</p>
<p>The answer is no.  Even with a lot of <strong>InstallShield</strong> experience, I have to go through the same process as everyone else.  Here is the sequence of events most of us have to go through:</p>
<ol>
<li>A new version of <strong>InstallShield</strong> is released.  With it are new redistributables.</li>
<li>We need to update each existing installation project to the new <strong>InstallShield</strong> version.  This is usually taken care of by opening the existing installation in the new version, with <strong>InstallShield</strong> automatically upgrading the project.</li>
<li>If the software being installed has been upgraded to work with new redistributables (since the last release), the old redistributables will need to be unselected, and the new ones selected.</li>
<li>Since we may not be familiar with what is installed in the new versions of the redistributables we have selected, we must play it safe and go to <strong>Microsoft.com</strong> and see what&#8217;s included in each one.  For example, if we are now including <strong>Microsoft .NET Framework 3.5 SP1</strong>, we will learn that it installs practically everything <strong>Microsoft</strong> needed to put in previous versions of redistributables.</li>
<li>We build the installation and pray to the Windows Gods that there will be no errors.</li>
<li>We test the installation on all Windows platforms and configurations applicable to our software, making sure that it actually works with these new redistributables.</li>
<li>We get raised, praised, or fired, depending on the kind of job we did.</li>
</ol>
<p>That seems to be the process I go through every single time, and to date, I&#8217;ve not found a way around it.  If you know a better way, or if you have something to add, I would be happy to hear about it.  <strong>Just leave a comment</strong>.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/985/each-new-version-of-installshield-has-new-redistributables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Can InstallScript MSI Installs Pass Windows Logo Certification?</title>
		<link>http://www.installationdeveloper.com/982/can-installscript-msi-installs-pass-windows-logo-certification/</link>
		<comments>http://www.installationdeveloper.com/982/can-installscript-msi-installs-pass-windows-logo-certification/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 02:01:50 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=982</guid>
		<description><![CDATA[I always thought both Basic MSI and InstallScript MSI installations could pass Windows Logo Certification since they both use the Windows Installer.  In doing some research on the InstallShield forum, I found differing opinions, so I was puzzled.  However, I eventually found a post which set the record straight.
The specific reference to passing [...]]]></description>
			<content:encoded><![CDATA[<p>I always thought both <strong>Basic MSI</strong> and <strong>InstallScript MSI</strong> installations could pass <strong>Windows Logo Certification</strong> since they both use the <strong>Windows Installer</strong>.  In doing some research on the <strong>InstallShield</strong> forum, I found differing opinions, so I was puzzled.  However, I eventually found a post which set the record straight.</p>
<p>The specific reference to passing logo certification is on page 2.  Here is the link to that page:  </p>
<p><a href="http://community.flexerasoftware.com/showthread.php?t=167928&#038;page=2&#038;highlight=installscript+msi+logo">Need answer from InstallShield staff please regarding Windows Vista Logo Program Test</a></p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/982/can-installscript-msi-installs-pass-windows-logo-certification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What if Built-In Directory Selection Dialogs Aren&#8217;t What You Need?</title>
		<link>http://www.installationdeveloper.com/976/what-if-built-in-directory-selection-dialogs-arent-what-you-need-2/</link>
		<comments>http://www.installationdeveloper.com/976/what-if-built-in-directory-selection-dialogs-arent-what-you-need-2/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 14:28:02 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=976</guid>
		<description><![CDATA[While working on a pure InstallScript installation, I tried all of the built-in path selection dialogs looking for one that would fit my requirements.
What I needed was a dialog that would allow the user to select a new folder, whether it was on the hard drive or on the CD/DVD-ROM drive.  I was writing [...]]]></description>
			<content:encoded><![CDATA[<p>While working on a pure <strong>InstallScript</strong> installation, I tried all of the built-in path selection dialogs looking for one that would fit my requirements.</p>
<p>What I needed was a dialog that would allow the user to select a new folder, whether it was on the hard drive or on the CD/DVD-ROM drive.  I was writing an installation for a mapping product where the user could read the map libraries from the DVD-ROM or from the hard drive.  If they wanted to read from the hard drive, the libraries would be coped there during installation.</p>
<p>I looked at the following built-in functions:</p>
<p><strong>
<ul>
<li>AskDestPath()</li>
<li>AskPath()</li>
<li>SdAskDestPath()</li>
<li>SdSelectFolder()</li>
<li>SelectDir()</li>
</ul>
<p></strong></p>
<p>It turns out that none of these would work.  The reason is they call <strong>SelectDir</strong>(), and that function will not allow you to choose a CD/DVD-ROM drive as a destination.  These functions were probably written with the idea that the user would only use them to select a destination path for the installation.  If that&#8217;s the case, then it all makes sense.  But that wouldn&#8217;t work for me.</p>
<p>I created a <strong>.NET Class Library</strong> and called it from the script.  In the library, I used the .NET <strong>FolderBrowserDialog()</strong> function with the <strong>ShowNewFolderButton</strong> property set to <strong>TRUE</strong>, so the user could create a folder if he wished.  It worked like a charm.</p>
<p>I am documenting this in case someone needs similar functionality in a pure <strong>InstallScript</strong> project.  There is no need for you to look for a built-in <strong>InstallShield</strong> function, when there isn&#8217;t one.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/976/what-if-built-in-directory-selection-dialogs-arent-what-you-need-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Close Look at Version Numbers in the Windows Installer</title>
		<link>http://www.installationdeveloper.com/979/a-close-look-at-version-numbers-in-the-windows-installer-2/</link>
		<comments>http://www.installationdeveloper.com/979/a-close-look-at-version-numbers-in-the-windows-installer-2/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 14:29:50 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=979</guid>
		<description><![CDATA[Newcomers to InstallShield and the Windows Installer always get tripped up by one thing &#8211; Version Numbers.  So, let&#8217;s take a close look at how version numbers are handled.
The Windows Installer uses a three-part version number.  As a result, all version numbers must conform to the following format:
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;major.minor.build
An example version using this format [...]]]></description>
			<content:encoded><![CDATA[<p>Newcomers to <strong>InstallShield</strong> and the <strong>Windows Installer</strong> always get tripped up by one thing &#8211; <strong>Version Numbers</strong>.  So, let&#8217;s take a close look at how version numbers are handled.</p>
<p>The <strong>Windows Installer</strong> uses a three-part version number.  As a result, all version numbers must conform to the following format:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>major.minor.build</strong></p>
<p>An example version using this format would be <strong>2.10.015</strong>.</p>
<p>That&#8217;s nice you say, <strong>&#8220;But all the version numbers in my company are of the format, 4.50.100.451.&#8221;</strong></p>
<p>Okay, but the <strong>Windows Installer</strong> will ignore the last part (the .451).  Now, you can use a four part version number in <strong>Basic MSI</strong> and <strong>InstallScript MSI</strong> projects in <strong>InstallShield</strong>, but the <strong>Windows Installer</strong> will still ignore the fourth part.</p>
<p>I can&#8217;t explain why <strong>Microsoft</strong> came up with this format.  At least 80% of the people I talk to use a four-part version number in their company.  And they are all just as upset about this as you are.  So, to get you over being upset, here&#8217;s a little humor.</p>
<p>The Windows Installer has it&#8217;s own internal version number that signifies what version it is, and I bet you can&#8217;t guess what the format is:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>major.minor.build.update</strong></p>
<p>We see that Microsoft wanted the internal version number of the Windows Installer to have four parts, but the public can only use version numbers with three parts.</p>
<p>Makes perfect sense to me.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/979/a-close-look-at-version-numbers-in-the-windows-installer-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Non-English Installation with InstallShield Pro</title>
		<link>http://www.installationdeveloper.com/939/creating-a-non-english-installation-with-installshield-pro/</link>
		<comments>http://www.installationdeveloper.com/939/creating-a-non-english-installation-with-installshield-pro/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 15:28:46 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=939</guid>
		<description><![CDATA[Recently, I had to do an installation in Swedish for a client.  I own InstallShield Professional, so I wondered how to pull it off.  I ended up doing something really easy which worked very well.
I downloaded the trial version of InstallShield Premier, installed it, and exported the Swedish string table.  I then [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I had to do an installation in <strong>Swedish</strong> for a client.  I own <strong>InstallShield Professional</strong>, so I wondered how to pull it off.  I ended up doing something really easy which worked very well.</p>
<p>I downloaded the trial version of <strong>InstallShield Premier</strong>, installed it, and exported the <strong>Swedish</strong> string table.  I then went back to my copy of <strong>InstallShield Professional</strong> and imported the <strong>Swedish</strong> string table before I did any work on the installer.  After importing, I did all the work the client required.</p>
<p>In this installer, I didn&#8217;t create any <strong>English</strong> strings, so my theory was that when I gave the finished installation to the client, all he would have to do was rebuild the project on his end, and everything would be fine.  Well, that&#8217;s exactly what happened.</p>
<p>The only caveat in doing this technique is that if you create any <strong>English</strong> strings or any <strong>English</strong> custom dialogs, then the client will have to translate those strings from his location.  In my installation, I didn&#8217;t have to do any of those things, so it made it easy for the client.</p>
<p>Now, what was the difficulty in this whole project?  The only difficulty was that all the dialogs were in <strong>Swedish</strong>, so I sometimes had to look back at the actual dialog name, to understand what was really going on.  But it all worked out.</p>
<p>This technique will work for anyone needing to create an installation that is in a language different from the  language of the InstallShield copy they own.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/939/creating-a-non-english-installation-with-installshield-pro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the Order of Files Copied to Target System</title>
		<link>http://www.installationdeveloper.com/900/changing-the-order-of-files-copied-to-target-system/</link>
		<comments>http://www.installationdeveloper.com/900/changing-the-order-of-files-copied-to-target-system/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 01:47:36 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=900</guid>
		<description><![CDATA[If you ever have a need to change the order of files copied to the target system in a Basic MSI project, you can edit the File table.
Go to the Direct Editor view in the InstallShield IDE and select the File table.  Here is a screenshot of the file table from one of my [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever have a need to change the order of files copied to the target system in a <strong>Basic MSI</strong> project, you can edit the <strong>File</strong> table.</p>
<p>Go to the <strong>Direct Editor</strong> view in the <strong>InstallShield IDE</strong> and select the <strong>File</strong> table.  Here is a screenshot of the file table from one of my own projects:<br />
<br/><br />
<img src="http://www.installationdeveloper.com/images/file-table-2.jpg" alt="File Table in Direct Editor View in the InstallShield IDE" title="File Table in Direct Editor View in the InstallShield IDE" width="619" height="372"/><br />
<br/><br />
The <strong>FileName</strong> column holds the name of the files being copied to the target system.  The <strong>Component</strong> column holds the name of the <strong>Component</strong> that each file belongs to.  For this discussion, we are interested in the <strong>Sequence</strong> column.</p>
<p>Notice that <strong>InstallShield</strong> places 1s in this column by default.  But if you have a file that you want copied to the target system first, just leave that with a <strong>Sequence</strong> of <strong>1</strong>, and change everything else to a greater number.  Files are copied to the target system with the lowest sequence numbers first, highest sequence numbers last.  In our example, let&#8217;s say we want <strong>Mega View.exe</strong> copied first, so we leave that as a <strong>1</strong>.  All other files should be changed to something greater.  Here we are using <strong>10</strong>.</p>
<p>Now, what&#8217;s the downside to this strategy?  It&#8217;s that everytime you add new files to your project, you will have to go to the <strong>File</strong> table and set the <strong>Sequence</strong> for those files.</p>
<p>I entertained doing this for a client project, so I thought I would pass it on.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/900/changing-the-order-of-files-copied-to-target-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Want to Use the Windows Installer, But Which Project Type?</title>
		<link>http://www.installationdeveloper.com/891/i-want-to-use-the-windows-installer-but-which-project-type/</link>
		<comments>http://www.installationdeveloper.com/891/i-want-to-use-the-windows-installer-but-which-project-type/#comments</comments>
		<pubDate>Sun, 23 May 2010 02:14:43 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=891</guid>
		<description><![CDATA[A very common point of confusion is where a person wants to create an installation in InstallShield that uses the Windows Installer.  But they don&#8217;t know which project type to use.  Basic MSI or InstallScript MSI.
The overwhelming majority of people prefer to use the Basic MSI project.  But if you are new [...]]]></description>
			<content:encoded><![CDATA[<p>A very common point of confusion is where a person wants to create an installation in <strong>InstallShield</strong> that uses the <strong>Windows Installer</strong>.  But they don&#8217;t know which project type to use.  <strong>Basic MSI</strong> or <strong>InstallScript MSI</strong>.</p>
<p>The overwhelming majority of people prefer to use the <strong>Basic MSI</strong> project.  But if you are new to installation development, you may find that the <strong>Basic MSI</strong> project has a steeper learning curve.  I have written posts on this.  Just search this website.</p>
<p>When <strong>Microsoft</strong> created the <strong>Windows Installer</strong>, they realized it would not provide all the functionality to cover every conceivable Windows installation scenario that people would come up with.  The possibilities are just too endless.  However, even writing custom actions in a <strong>Basic MSI</strong> project will not always accomplish what you want.  So, why would you ever want to use the <strong>InstallScript MSI</strong> project?</p>
<p>You should know that to some installation developers, the <strong>InstallScript MSI</strong> project type is a joke.  These people can not fathom why you would use such a thing.  Especially, when it is seen as a hybrid of the <strong>Basic MSI</strong> and <strong>InstallScript</strong> project types.  However, the <strong>InstallScript MSI</strong> project uses the <strong>Windows Installer</strong>, the <strong>InstallScript</strong> project does not.</p>
<p>Other developers feel the <strong>InstallScript MSI</strong> project is the weakest type of project that InstallShield offers.  However, there are some very appropriate times to use it.</p>
<p>If your boss or client is requesting something out of the ordinary, it may not be possible to accomplish it in a <strong>Basic MSI</strong> project.  Generally, this has to do when they want control over every aspect of the installation.  I&#8217;ll give you a perfect example.</p>
<p>Let&#8217;s say your boss wants a user to be able to click the Uninstall button in the Add/Remove Programs dialog and then bring up a Custom dialog box which presents two options.  Uninstall option 1 and uninstall option 2.  Let&#8217;s say option 1 drops a SQL Server database and option 2 does not.  The user chooses an option, clicks the Next button, it goes to the ReadyToRemove dialog, the user clicks Remove, and the program is uninstalled according to the option they selected.</p>
<p>Now, you can not do this in a <strong>Basic MSI</strong> project.  Why?  Because when you click the Uninstall button in Add/Remove Programs, the <strong>User Interface</strong> sequence is skipped, and just the <strong>Execute</strong> sequence is performed.  So, you can&#8217;t do it in <strong>Basic MSI</strong>.  If you want this degree of customization, then you should consider the <strong>InstallScript MSI</strong> project.</p>
<p>There are other examples where an <strong>InstallScript MSI</strong> project makes more sense, and it&#8217;s generally when you want a higher level of customization than <strong>Basic MSI</strong> is able to provide.  And that&#8217;s when it&#8217;s perfectly acceptable to use <strong>InstallScript MSI</strong>.</p>
<p>Don&#8217;t let anyone make you feel bad for using it.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/891/i-want-to-use-the-windows-installer-but-which-project-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Joys of Prerequisite Editing</title>
		<link>http://www.installationdeveloper.com/879/the-joys-of-prerequisite-editing/</link>
		<comments>http://www.installationdeveloper.com/879/the-joys-of-prerequisite-editing/#comments</comments>
		<pubDate>Fri, 21 May 2010 03:11:32 +0000</pubDate>
		<dc:creator>Rod_Maupin</dc:creator>
				<category><![CDATA[InstallShield Training]]></category>
		<category><![CDATA[installshield class]]></category>
		<category><![CDATA[installshield classes]]></category>
		<category><![CDATA[installshield course]]></category>
		<category><![CDATA[installshield courses]]></category>
		<category><![CDATA[installshield programmer]]></category>
		<category><![CDATA[installshield tutorial]]></category>
		<category><![CDATA[installshield tutorials]]></category>

		<guid isPermaLink="false">http://www.installationdeveloper.com/?p=879</guid>
		<description><![CDATA[I&#8217;m currently doing a very common task.  I&#8217;m creating a Basic MSI installation where I have to edit several prerequisites and then get everything to still work.  However, it&#8217;s not working as planned.  During the installation of one of the prerequisites, it&#8217;s failing with an ambiguous message.
Here&#8217;s the message:
&#8220;The installation of Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently doing a very common task.  I&#8217;m creating a <strong>Basic MS</strong>I installation where I have to edit several <strong>prerequisites</strong> and then get everything to still work.  However, it&#8217;s not working as planned.  During the installation of one of the <strong>prerequisites</strong>, it&#8217;s failing with an ambiguous message.</p>
<p>Here&#8217;s the message:</p>
<p><strong>&#8220;The installation of Microsoft SQL Server 2008 Express SP1 (x86) appears to have failed.  Do you want to continue the installation?&#8221;</strong></p>
<p>Here is a screencap of the error:</p>
<p><img src="http://www.installationdeveloper.com/images/install-of-sql-server-2008-express-failed.jpg" alt="The installation of a prerequisite is failing in InstallShield" title="The installation of a prerequisite is failing in InstallShield"/></p>
<p>So, what do you do?  Well, after a day&#8217;s worth of investigation I found out that the error was caused by the wrong combination of command line options on the <strong>Application to Run</strong> tab of the <strong>Prerequisite Editor</strong>.  When I corrected the options, the problem went away</p>
<p>I&#8217;m not going to give you specific options because the combinations are endless.  In addition, the main point I want to make is that this can not just happen with <strong>SQL Server 2008 Express</strong>, it can happen with any prerequisite you have edited.</p>
<p>One test you can do is create a batch file with the name of the executable and the corresponding command line options.  If you get it working from the command line, then you can use those same options in the <strong>Prerequisite</strong>.</p>
<p>Try this the next time you run into trouble.</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.installationdeveloper.com/879/the-joys-of-prerequisite-editing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
