<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru-RU"><title type="html">Alex Shevchuk</title><subtitle type="html">Always listen to experts. They’ll tell you what can’t be done, and why. Then do it.  -  Lazarus Long</subtitle><id>http://blogs.technet.com/b/alexshev/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/b/alexshev/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2009-05-11T22:50:00Z</updated><entry><title>From MSI to WiX, Part 26 - Shortcut: To pin or not to pin?</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2010/05/13/from-msi-to-wix-part-26-shortcut-to-pin-or-not-to-pin.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="8112" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-33-24-95/ShortcutProperty.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2010/05/13/from-msi-to-wix-part-26-shortcut-to-pin-or-not-to-pin.aspx</id><published>2010-05-13T21:16:00Z</published><updated>2010-05-13T21:16:00Z</updated><content type="html">As you may already know , Windows 7 supports setting properties on shortcuts and MSI 5.0 provides MsiShortcutProperty table to enable setting shortcut properties from installation package. 
 Let's start with updated nonadvertised shortcut sample from Part 10 : 
 &amp;lt;? xml version = " 1.0 " encoding = " UTF-8 " ?&amp;gt; 
 
 &amp;lt;? define APPPATH = "D:\Learning\Wix\ShortcutProperty\ConsoleApp\bin\Debug" ?&amp;gt; 
 
 &amp;lt; Wix xmlns = " http://schemas.microsoft.com/wix/2006/wi " &amp;gt; 
 &amp;lt; Product Id...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2010/05/13/from-msi-to-wix-part-26-shortcut-to-pin-or-not-to-pin.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3332495" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>From MSI to WiX, Part 25 - Installable Items - Updating XML files using XmlFile</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/27/from-msi-to-wix-part-25-installable-items-updating-xml-files-using-xmlfile.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="5061" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-59-45/XmlFileUpdate.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/27/from-msi-to-wix-part-25-installable-items-updating-xml-files-using-xmlfile.aspx</id><published>2009-05-27T22:34:00Z</published><updated>2009-05-27T22:34:00Z</updated><content type="html">To use XmlFile element we need to: 
 
 Add reference to WixUtilExtension extension. 
 Add util namespace to &amp;lt;Wix&amp;gt; element: 
 &amp;lt;? xml version = " 1.0 " encoding = " UTF-8 " ?&amp;gt; 
 &amp;lt; Wix xmlns = " http://schemas.microsoft.com/wix/2006/wi " 
 xmlns:util = " http://schemas.microsoft.com/wix/UtilExtension " &amp;gt; 
 Here is what we can do with existing XML file using XmlFile element: 
 
 Set the value of an attribute 
 Set the text value of an element 
 Create new element 
 Create...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/27/from-msi-to-wix-part-25-installable-items-updating-xml-files-using-xmlfile.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3245945" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>From MSI to WiX, Part 24 - DLL Custom Actions - Get property value and obtaining/changing session information</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/26/from-msi-to-wix-part-24-dll-custom-actions-get-property-value-and-obtaining-changing-session-information.aspx" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/26/from-msi-to-wix-part-24-dll-custom-actions-get-property-value-and-obtaining-changing-session-information.aspx</id><published>2009-05-26T22:20:00Z</published><updated>2009-05-26T22:20:00Z</updated><content type="html">In previous post we looked at how to set propery's value. Getting property value is more involved because we need to make sure that provided memory buffer for property value is big enough to hold the value. Function MsiGetProperty is used to get a property value. Description for MsiGetProperty function has a very good sample on how to get value of a property. 
 WiX API has a set of functions to get value of a property: 
 
 WcaGetProperty - returns value of a property. 
 WcaGetIntProperty - returns...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/26/from-msi-to-wix-part-24-dll-custom-actions-get-property-value-and-obtaining-changing-session-information.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3244786" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>Documentation on WiX API</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/21/documentation-on-wix-api.aspx" /><link rel="enclosure" type="application/octet-stream" length="144895" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-43-89/WixAPI.chm" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/21/documentation-on-wix-api.aspx</id><published>2009-05-22T05:50:00Z</published><updated>2009-05-22T05:50:00Z</updated><content type="html">I just want to let everybody know that I am working on documenting WiX API, namely - wcautil and dutil libraries. 
 I don't mind if this will become part of official WiX documentation. In fact, I hope - it will, because I personally, would like to see something like this in the WiX help file. 
 Any feedback and help are welcome. 
 I am going to update attachment(s) as often as I will have significant enough amount of changes in the content, so, if you want to have an update, check it regularly...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/21/documentation-on-wix-api.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3244389" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>From MSI to WiX, Part 23 - DLL Custom Actions - Logging and setting properties</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/16/from-msi-to-wix-part-23-dll-custom-actions-logging-and-setting-properties.aspx" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/16/from-msi-to-wix-part-23-dll-custom-actions-logging-and-setting-properties.aspx</id><published>2009-05-17T07:20:00Z</published><updated>2009-05-17T07:20:00Z</updated><content type="html">Let's start with setting property value using MSI API MsiSetProperty . This function takes three parameters: 
 
 An installation handle, originally passed to custom action's function by Windows Installer. 
 Name of the property to set or remove. 
 New value for the property or NULL (or empty string) to remove property. 
 To get the installation handle we could cache it in some global variable, but WiX provides caching already in the form of WcaInitialize (to cache handle) and WcaGetInstallHandle...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/16/from-msi-to-wix-part-23-dll-custom-actions-logging-and-setting-properties.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3242435" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>From MSI to WiX, Part 22 - DLL Custom Actions - Introduction</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/15/from-msi-to-wix-part-22-dll-custom-actions-introduction.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="2091073" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-20-11/CAIntro.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/15/from-msi-to-wix-part-22-dll-custom-actions-introduction.aspx</id><published>2009-05-16T07:24:00Z</published><updated>2009-05-16T07:24:00Z</updated><content type="html">Today I am starting a mini series on writing C++ custom actions. 
 Let's start with wizard-generated custom action project. Start Visual Studio and select "C++ Custom Action Project". Set "CAIntro" as the name of the project. 
 Before we will start discussing what is in the generated code, let's talk about what Windows Installer is expecting from dll in order to be a good behaving MSI custom action dll. 
 First of all, dll must provide the usual dll entry point - DllMain function. On process attach...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/15/from-msi-to-wix-part-22-dll-custom-actions-introduction.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3242011" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/14/registrysearch-registryvalue.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="4868" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-10-78/SetRegistry1.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/14/registrysearch-registryvalue.aspx</id><published>2009-05-14T23:24:00Z</published><updated>2009-05-14T23:24:00Z</updated><content type="html">English version is here . 
 
 Вопрос: 
 Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue? Нечто вроде этого: 
 
 &amp;lt;Property Id="PROP1"&amp;gt; 
 &amp;lt;RegistrySearch Id="search1" 
 Root="HKLM" 
 Key="somekey" 
 Name="somename" 
 Type="raw" /&amp;gt; 
 &amp;lt;/Property&amp;gt; 
 
 ... 
 
 &amp;lt;RegistryValue Type="???" Name="othervalue" Value="PROP1" /&amp;gt; 
 
 Прежде всего, для того чтобы использовать свойство необходимо, чтобы атрибут элемента имел тип данных...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/14/registrysearch-registryvalue.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3241078" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>Как сохранить значения свойств использовавшихся при начальной установке</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/13/3240991.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="4949" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-09-91/PreserveProperty.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/13/3240991.aspx</id><published>2009-05-14T09:35:00Z</published><updated>2009-05-14T09:35:00Z</updated><content type="html">English version is here . 
 
 Один из наиболее часто задаваемых вопросов - как сохранить значение свойства, которое было присвоено свойству во время инсталлирования программы (присвоенное либо через параметер в командной строке или через пользовательский интерфейс как, например, INSTALLLOCATION). 
 В качестве примера возьмем одну из возможный ситуатций. Рассмотрим очень простой пример. Идея состоит в том, что пользователь передает через командную строку значение, которое необходимо записать в...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/13/3240991.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3240991" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>Preserving properties used during install</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/13/preserving-properties-used-during-install.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="4877" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-08-37/PreserveProperty.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/13/preserving-properties-used-during-install.aspx</id><published>2009-05-14T05:15:00Z</published><updated>2009-05-14T05:15:00Z</updated><content type="html">Русская версия здесь . 
 
 One of the most common questions is how to preserve the value of property used during install (either passed through command line or properties like INSTALLLOCATION which can be changed in the UI) so that it can be used during maintenance or uninstall. 
 For example, here is one of the possible situations. Consider this very simple example. The idea here is that user passes the value to be written in the xml file through command line parameter. We need to make sure that...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/13/preserving-properties-used-during-install.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3240837" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry><entry><title>Is it possible to use RegistrySearch result in RegistryValue?</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/alexshev/archive/2009/05/11/is-it-possible-to-use-registrysearch-result-in-registryvalue.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="4868" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-23-94-51/SetRegistry1.zip" /><id>http://blogs.technet.com/b/alexshev/archive/2009/05/11/is-it-possible-to-use-registrysearch-result-in-registryvalue.aspx</id><published>2009-05-12T08:50:00Z</published><updated>2009-05-12T08:50:00Z</updated><content type="html">Русская версия здесь . 
 
 This post is an answer to this question sent to wix-users mailing list: 
 Is it possible to use RegistrySearch result in RegistryValue? Something like this: 
 
 &amp;lt;Property Id="PROP1"&amp;gt; 
 &amp;lt;RegistrySearch Id="search1" 
 Root="HKLM" 
 Key="somekey" 
 Name="somename" 
 Type="raw" /&amp;gt; 
 &amp;lt;/Property&amp;gt; 
 
 ... 
 
 &amp;lt;RegistryValue Type="???" Name="othervalue" Value="PROP1" /&amp;gt; 
 
 First of all, in order to use property, desired field must have...(&lt;a href="http://blogs.technet.com/b/alexshev/archive/2009/05/11/is-it-possible-to-use-registrysearch-result-in-registryvalue.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3239451" width="1" height="1"&gt;</content><author><name>Alex Shevchuk</name><uri>http://blogs.technet.com/alexshev/ProfileUrlRedirect.ashx</uri></author><category term="Microsoft Installer" scheme="http://blogs.technet.com/b/alexshev/archive/tags/Microsoft+Installer/" /><category term="MSI" scheme="http://blogs.technet.com/b/alexshev/archive/tags/MSI/" /><category term="WiX" scheme="http://blogs.technet.com/b/alexshev/archive/tags/WiX/" /></entry></feed>