<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx</link><description>The main page for the series is here . 
 
 
 Introduction 
 A typical Major Upgrade removes a previous version of an application and installs a new version. This blog will guide you through the process of creating Major Upgrade . 
 
 Source code</description><dc:language>ru-RU</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3544448</link><pubDate>Mon, 07 Jan 2013 11:45:32 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3544448</guid><dc:creator>Anudeep Debnath</dc:creator><description>&lt;p&gt;Hi Alex,&lt;/p&gt;
&lt;p&gt;I am facing now a days problem with upgrade. I made a Web Application upgrade with proper rules of upgrade but it is not copying files from source directory. It will make double entry in &amp;#39;Program and features&amp;#39;. &amp;nbsp;and not upgrade the previous version. I made everything proper as I seen. I checked UpgradeVersion, AdminUISequence, InstallUISequence, InstallExecuteSequence. Everything in a right manner. It is not working. Whats the problem? Whats I am missing?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3544448" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3380773</link><pubDate>Mon, 17 Jan 2011 18:48:24 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3380773</guid><dc:creator>SCCM</dc:creator><description>&lt;p&gt;I&amp;#39;ve have built same code with two different version numbers. Installed the first MSI and tried to use the second to uninstall (I was hoping that would work as the upgrade code is the same); however, I get &amp;quot;Another version of this product is already installed&amp;quot; message. &lt;/p&gt;
&lt;p&gt;Plz help......&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3380773" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3380771</link><pubDate>Mon, 17 Jan 2011 18:48:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3380771</guid><dc:creator>SCCM</dc:creator><description>&lt;p&gt;I&amp;#39;ve been built same code with two different version numbers. Installed the first MSI and tried to use the second to uninstall (I was hoping that would work as the upgrade code is the same); however, I get &amp;quot;Another version of this product is already installed&amp;quot; message. &lt;/p&gt;
&lt;p&gt;Plz help......&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3380771" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3376910</link><pubDate>Wed, 22 Dec 2010 22:22:02 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3376910</guid><dc:creator>DaveC4</dc:creator><description>&lt;p&gt;I&amp;#39;ve run into an interesting issue with trying to schedule REP at the end of the install. Everything works fine (as expected) when a component is being upgraded (or downgraded) in the new installer. However, if the component is unchanged, while the end result is correct (file not copied, ref count is good [during REP, the action state is the expected &amp;#39;null&amp;#39;]), the action state of the component implies the file is being installed. This means the CAs associated with the component actually get run. This is bad. (We&amp;#39;re trying to minimize driver churn and reboots)&lt;/p&gt;
&lt;p&gt;Is there any way to condition a CA on the true state? So far my investigation seems to indicate there isn&amp;#39;t since the determination to not copy the file isn&amp;#39;t actually made until the InstallFiles action in the deferred sequence.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3376910" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3363687</link><pubDate>Fri, 15 Oct 2010 16:08:56 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3363687</guid><dc:creator>kit</dc:creator><description>&lt;p&gt;I have the same problem :( &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3363687" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3352910</link><pubDate>Tue, 31 Aug 2010 17:50:33 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3352910</guid><dc:creator>Willy G</dc:creator><description>&lt;p&gt;Hi Alex (or anyone that can help),&lt;/p&gt;
&lt;p&gt; &amp;nbsp; I have inserted this code into two various builds now and both still do not upgrade automatically. It throws me a message that &amp;quot;Another version of this product is already installed. Installation of this version cannot continue. To configure or remove...&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; Can someone point me into the right direction as to what I may be missing? Thanks in advance.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3352910" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3363685</link><pubDate>Fri, 25 Jun 2010 03:33:29 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3363685</guid><dc:creator>Andrey</dc:creator><description>&lt;p&gt;Добрый день. Я слаб в английском, и чтоб лучше объснить суть проблем пишу на русском)&lt;/p&gt;
&lt;p&gt;Повторяю в точность все выше описанные шаги, но мой installer &amp;nbsp;ни как не хочет обновлять предыдущею версию программы. Шаги:&lt;/p&gt;
&lt;p&gt;1. Собрал приложение в студии. Запускаю мой installer.&lt;/p&gt;
&lt;p&gt;2. Все прекрасно устанавливается. &lt;/p&gt;
&lt;p&gt;3. Повторно запускаю installer, мне предлагается выбрать вариант установки, Изменить, Восстановить, или Удалить. Тут все ок!&lt;/p&gt;
&lt;p&gt;4. Если ЗАНОВО сдлеать Rebuild solution в студии(при этом НИ строчки кода НЕ менялось!!!). И снова запустить installer, то сразу же появляется окно, мол: Есть старая версия удали ее сначала плиз! :(&lt;/p&gt;
&lt;p&gt;Another version of this product is already installed. Installation of this version cannot continue.&lt;/p&gt;
&lt;p&gt;To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.&lt;/p&gt;
&lt;p&gt;Вот мой код:&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;Wix xmlns=&amp;quot;&lt;a rel="nofollow" target="_new" href="http://schemas.microsoft.com/wix/2006/wi&amp;quot;&amp;gt;"&gt;schemas.microsoft.com/.../wi&amp;quot;&amp;gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define SkuName = &amp;quot;TestApp&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define RTMProductVersion=&amp;quot;1.0.0&amp;quot; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define ProductName=&amp;quot;SetupProject1&amp;quot; ?&amp;gt;	&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define ProductVersion=&amp;quot;2.0.0.0&amp;quot; ?&amp;gt;	&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define ProductCode=&amp;quot;b7bc7c6f-9a4e-4973-be84-eca8e3427c97&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define UpgradeCode=&amp;quot;06a81104-1e30-463d-87e1-e8a79b4c682a&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define PackageCode=&amp;quot;{8EB1B635-E70B-4F5D-B1CE-C2B25E63A3F5}&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;?define Manufacturer=&amp;quot;MyCompany&amp;quot;?&amp;gt;&lt;/p&gt;
&lt;p&gt;	&amp;lt;Product Id=&amp;quot;$(var.ProductCode)&amp;quot; Name=&amp;quot;$(var.ProductName)&amp;quot; Language=&amp;quot;1049&amp;quot; Version=&amp;quot;$(var.ProductVersion)&amp;quot; Manufacturer=&amp;quot;$(var.Manufacturer)&amp;quot; UpgradeCode=&amp;quot;$(var.UpgradeCode)&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;		&amp;lt;Package Id=&amp;quot;$(var.PackageCode)&amp;quot; Manufacturer=&amp;quot;$(var.Manufacturer)&amp;quot;&lt;/p&gt;
&lt;p&gt;			 InstallerVersion=&amp;quot;200&amp;quot;&lt;/p&gt;
&lt;p&gt;			 SummaryCodepage=&amp;#39;1252&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Compressed=&amp;#39;yes&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AdminImage=&amp;#39;no&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platforms=&amp;#39;Intel&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReadOnly=&amp;#39;yes&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ShortNames=&amp;#39;no&amp;#39;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Keywords=&amp;#39;Installer,MSI,Database&amp;#39;&lt;/p&gt;
&lt;p&gt; /&amp;gt;&lt;/p&gt;
&lt;p&gt;		&amp;lt;Media Id=&amp;quot;1&amp;quot; Cabinet=&amp;quot;$(var.SkuName).cab&amp;quot; EmbedCab=&amp;quot;yes&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;		&amp;lt;Upgrade Id=&amp;quot;$(var.UpgradeCode)&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;			&amp;lt;UpgradeVersion Minimum=&amp;quot;$(var.ProductVersion)&amp;quot;&lt;/p&gt;
&lt;p&gt;							IncludeMinimum=&amp;quot;no&amp;quot;&lt;/p&gt;
&lt;p&gt;							OnlyDetect=&amp;quot;yes&amp;quot;&lt;/p&gt;
&lt;p&gt;							Language=&amp;quot;1033&amp;quot;&lt;/p&gt;
&lt;p&gt;							Property=&amp;quot;NEWPRODUCTFOUND&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;			&amp;lt;UpgradeVersion Minimum=&amp;quot;$(var.RTMProductVersion)&amp;quot;&lt;/p&gt;
&lt;p&gt;							IncludeMinimum=&amp;quot;yes&amp;quot;&lt;/p&gt;
&lt;p&gt;							Maximum=&amp;quot;$(var.ProductVersion)&amp;quot;&lt;/p&gt;
&lt;p&gt;							IncludeMaximum=&amp;quot;no&amp;quot;&lt;/p&gt;
&lt;p&gt;							Language=&amp;quot;1033&amp;quot;&lt;/p&gt;
&lt;p&gt;							Property=&amp;quot;UPGRADEFOUND&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;		&amp;lt;/Upgrade&amp;gt;&lt;/p&gt;
&lt;p&gt;		&amp;lt;Directory Id=&amp;quot;TARGETDIR&amp;quot; Name=&amp;quot;SourceDir&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;			&amp;lt;Directory Id=&amp;quot;ProgramFilesFolder&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;				&amp;lt;Directory Id=&amp;quot;INSTALLLOCATION&amp;quot; Name=&amp;quot;$(var.ProductName)&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;					&amp;lt;Component Id=&amp;quot;ProductComponent&amp;quot; Guid=&amp;quot;b11556a2-e066-4393-af5c-9c9210187eb2&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;						&amp;lt;File Id=&amp;#39;Calc&amp;#39; DiskId=&amp;#39;1&amp;#39; Source=&amp;#39;C:\WINDOWS\system32\calc.exe&amp;#39;/&amp;gt;&lt;/p&gt;
&lt;p&gt;					&amp;lt;/Component&amp;gt;&lt;/p&gt;
&lt;p&gt;				&amp;lt;/Directory&amp;gt;&lt;/p&gt;
&lt;p&gt;			&amp;lt;/Directory&amp;gt;&lt;/p&gt;
&lt;p&gt;			&amp;lt;Directory Id=&amp;quot;ProgramMenuFolder&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;				&amp;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3363685" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3336613</link><pubDate>Tue, 08 Jun 2010 06:57:28 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3336613</guid><dc:creator>Cody</dc:creator><description>&lt;p&gt;Alex, thanks for your reply, its realy helpful. I was wery inattentive reading this msdn article before. Also I know about UPGRADINGPRODUCTCODE property and I using it. My question was more like curiosity: I thought may be there is some little-known mechanism for such situations... well.. looks like not.&lt;/p&gt;
&lt;p&gt;Any way thanks for you help. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3336613" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3336349</link><pubDate>Mon, 07 Jun 2010 16:50:47 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3336349</guid><dc:creator>Alex Shevchuk</dc:creator><description>&lt;p&gt;Hi Cody,&lt;/p&gt;
&lt;p&gt;For your first question - quote from &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/aa371197(VS.85).aspx:"&gt;msdn.microsoft.com/.../aa371197(VS.85).aspx:&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;The installer only runs the RemoveExistingProducts action the first time it installs a product. It does not run the action during a maintenance installation or uninstallation.&amp;quot;&lt;/p&gt;
&lt;p&gt;So, the answer is: there is no need to do any additional scheduling, MSI will take care of it.&lt;/p&gt;
&lt;p&gt;As far as scheduling, it is very tricky. &amp;nbsp;Even though scheduling REP after InstallFinalize is the most efficient, it may not always possible to schedule REP at this point. &amp;nbsp;Sometimes you have to schedule it before InstallInitialize if there are special CA&amp;#39;s on uninstall. &amp;nbsp;Also, keep in mind that when REP uninstalls the old product, it sets UPGRADINGPRODUCTCODE property which you can use to schedule CA to run only during uninstall or during old product uninstall. &amp;nbsp;This may help you in scheduling REP after InstallFinalize by splitting your CA to two separate: one for product uninstall and another one for old product uninstall during upgrade.&lt;/p&gt;
&lt;p&gt;Hope this helps,&lt;/p&gt;
&lt;p&gt;Alex&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3336349" width="1" height="1"&gt;</description></item><item><title>re: From MSI to WiX, Part 8 - Major Upgrade</title><link>http://blogs.technet.com/b/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx#3336218</link><pubDate>Mon, 07 Jun 2010 08:08:24 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3336218</guid><dc:creator>Cody</dc:creator><description>&lt;p&gt;Hi Alex, I have two questions for you if you please. &lt;/p&gt;
&lt;p&gt;1. As far as we need a RemoveExistingProducts action only when we install product, don&amp;#39;t we need some condition on it? Like &amp;quot;NOT REMOVE=ALL&amp;quot; or something like this?&lt;/p&gt;
&lt;p&gt;2. You say that location of RemoveExistingProducts action before InstallInitialize action is inefficient and that most efficient placement for this action is after InstallFinalize action. Right? But where I must to place it if some action which deals with uninstallation(I placed them before the UnpublishComponents action) &amp;nbsp;removes files, stops service, etc. I am afraid if I place RemoveExistingProducts after InstallFinalize there will be some comflicts. Can you suggest me something?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3336218" width="1" height="1"&gt;</description></item></channel></rss>