<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9093009</id><updated>2011-04-21T10:51:11.900-07:00</updated><title type='text'>Technically Blogging</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9093009.post-3267493313280498145</id><published>2007-08-26T13:53:00.000-07:00</published><updated>2007-11-18T09:42:00.988-08:00</updated><title type='text'>Moved to spaces.live.com</title><content type='html'>new URL is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ahmed0192.spaces.live.com/"&gt;http://ahmed0192.spaces.live.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.zamd.net/"&gt;http://blog.zamd.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;good bye blogspot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-3267493313280498145?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/3267493313280498145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=3267493313280498145' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/3267493313280498145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/3267493313280498145'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2007/08/moved-to-spaceslivecom.html' title='Moved to spaces.live.com'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-8014809971414435167</id><published>2006-11-28T11:05:00.001-08:00</published><updated>2006-11-28T11:05:26.616-08:00</updated><title type='text'>Registration-Free Activation</title><content type='html'>&lt;p&gt;I was working with Registration-Free COM and found these two excellent articles.&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn2.microsoft.com/en-us/library/ms973915.aspx" href="http://msdn2.microsoft.com/en-us/library/ms973915.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms973915.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn2.microsoft.com/en-us/library/ms973913.aspx#rfacomwalk_topic8" href="http://msdn2.microsoft.com/en-us/library/ms973913.aspx#rfacomwalk_topic8"&gt;http://msdn2.microsoft.com/en-us/library/ms973913.aspx#rfacomwalk_topic8&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-8014809971414435167?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/8014809971414435167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=8014809971414435167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/8014809971414435167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/8014809971414435167'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2006/11/registration-free-activation.html' title='Registration-Free Activation'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-636166116156862513</id><published>2006-11-21T08:13:00.000-08:00</published><updated>2006-11-21T08:30:35.963-08:00</updated><title type='text'>Customize MSBUILD without modifying your project file</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;In this post I’ll explain how you can use&lt;span style="color:#cc0000;"&gt; "&lt;span class="SpellE"&gt;&lt;strong&gt;&lt;em&gt;project.user"&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; file along with custom target file to&lt;br /&gt;customize &lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; project behavior.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;font-size:130%;color:#3333ff;"&gt;Little background&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;Like *.&lt;span class="SpellE"&gt;suo&lt;/span&gt; (Visual Studio Solution User Options), which stores user specific settings for the solution(including breakpoints information), &lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;MSBUILD also supports the notion of user specific settings on per project basis. &lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;This is done using&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;a file with the same name as your project plus the “.user” tag appended at the end and is called “Visual Studio Project User Options file”.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;So if you project file is named “&lt;span class="SpellE"&gt;Common.csproj&lt;/span&gt;”, your user option will be named &lt;span class="SpellE"&gt;Common.csproj.user&lt;/span&gt;”.&lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; checks for this file in the same directory as your project and imports it, if it’s available. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;This file can be used to define user specific project properties. As this file is imported in “&lt;span class="SpellE"&gt;&lt;span style="LINE-HEIGHT: 115%; mso-no-proof: yescolor:green;" &gt;Microsoft.Common.targets&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; mso-no-proof: yescolor:green;" &gt;” &lt;/span&gt;file, so it can be used to override all the properties defined in &lt;span class="SpellE"&gt;yourProject.csproj&lt;/span&gt; and&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; mso-no-proof: yescolor:green;" &gt;Microsoft.CSharp.targets &lt;/span&gt;or &lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; mso-no-proof: yescolor:green;" &gt;Microsoft.VisualBasic.targets.&lt;/span&gt;&lt;br /&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-family:times new roman;"&gt;Why will you customize &lt;i style="mso-bidi-font-style: normal"&gt;using .user file?&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;A typical use case is that you have customized your project settings (&lt;span class="SpellE"&gt;e.g&lt;/span&gt; referring to assemblies in a different way than build machine). You can keep all your customization in .user file allowing your project file to remain pure so it can be used by multiple people while checked into the source control. I usually don’t check-in .user file in source control.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;This gives you best of both worlds, project on other machines work in default/standard way, however when it gets built on your machine, it uses your custom settings from .user file.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;Another scenario is you want to add your custom task in the build process but&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;you don’t want to modify your project file. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;font-size:130%;color:#3333ff;"&gt;How to do this&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:times new roman;"&gt;You cannot do much with user files alone. As most of the target dependencies are defined after this file is imported. So if you have inserted your target in some dependency chain, it will be overridden by default dependencies. &lt;span class="SpellE"&gt;E.g &lt;/span&gt;If you have added your task as the first dependencies of core build tasks using following property.&lt;/span&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&amp;gt;&lt;/span&gt;&lt;span class="SpellE"&gt;YourTargetName&lt;/span&gt;;$(&lt;span class="SpellE"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;)&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&amp;gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;color:red;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;It will be overwritten because of following property definition in &lt;span style="mso-no-proof: yes;color:green;" &gt;Microsoft.Common.targets.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;color:#008000;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;BuildOnlySettings;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;" &gt;PrepareForBuild;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;PreBuildEvent;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;UnmanagedUnregistration;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;ResolveReferences;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;PrepareResources;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;ResolveKeySource;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;Compile;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;GenerateSerializationAssemblies;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;CreateSatelliteAssemblies;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;GenerateManifests;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;GetTargetPath;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;PrepareForRun;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;UnmanagedRegistration;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;IncrementalClean;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;PostBuildEvent&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;There is another interception point in &lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; which we can utilize to achieve above scenarios. &lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; looks for custom Targets before and after default targets. Specifically, &lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; looks for following two properties, if anyone of them is defined, &lt;span class="SpellE"&gt;MSBuild&lt;/span&gt; imports it and use it.&lt;br /&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;color:blue;"  &gt;CustomBeforeMicrosoftCommonTargets&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="font-family:times new roman;"&gt;CuCustomAfterMicrosoftCommonTargets&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;o:p&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;We will use &lt;span class="SpellE"&gt;CustomeAfterMicrosoftCommonTargets&lt;/span&gt; property to define our target(s) and run it based on some other target.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;So, create a file in your project root with name &lt;span class="SpellE"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;custom.target&lt;/i&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Project&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt;xmlns&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;=&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;"&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/developer/msbuild/2003&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;UsingTask&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt;TaskName&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;=&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;"&lt;span style="color:blue;"&gt;BuildInspector&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;AssemblyFile&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;C:\zahmed\Temp\building\CustomTasks\bin\Debug\CustomTasks.dll&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;color:blue;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CoreBuildDependsOn&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;MyCustomTarget;$(CoreBuildDependsOn)&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;CoreBuildDependsOn&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Target&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt;Name&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;=&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;"&lt;span style="color:blue;"&gt;MyCustomTarget&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Message&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt;Text&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;=&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;"&lt;span style="color:blue;"&gt;Running custom task ...&lt;/span&gt;"&lt;span style="color:blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;!--&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:green;" &gt;Run my custom task. &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;BuildInspector&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;color:blue;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Target&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Project&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;Now create the &lt;span class="SpellE"&gt;project.user&lt;/span&gt; file with following contents.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;o:p&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Project&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes;color:red;" &gt;xmlns&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;=&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;"&lt;span style="color:blue;"&gt;&lt;a href="http://schemas.microsoft.com/developer/msbuild/2003"&gt;http://schemas.microsoft.com/developer/msbuild/2003&lt;/span&gt;"&lt;span style="color:blue;"&gt;&gt;&lt;/a&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-tab-count: 1"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-tab-count: 2"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CustomAfterMicrosoftCommonTargets&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="font-family:times new roman;"&gt;C:\zahmed\Temp\building\conApp\custom.target&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;CustomAfterMicrosoftCommonTargets&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&lt;span style="mso-tab-count: 1"&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;PropertyGroup&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="mso-no-proof: yes;font-family:times new roman;color:blue;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; LINE-HEIGHT: normal; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:maroon;" &gt;Project&lt;/span&gt;&lt;span style="mso-no-proof: yes;color:blue;" &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-family:times new roman;"&gt;Now build your project to run your custom task.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="font-family:times new roman;color:#3333ff;"&gt;Note: You need to reload the project to load &lt;span class="SpellE"&gt;project.user&lt;/span&gt; file.&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-636166116156862513?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/636166116156862513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=636166116156862513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/636166116156862513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/636166116156862513'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2006/11/customize-msbuild-without-modifying.html' title='Customize MSBUILD without modifying your project file'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-114319979535610836</id><published>2006-03-24T03:18:00.000-08:00</published><updated>2006-03-24T03:29:55.366-08:00</updated><title type='text'>Deployment with Generic Bootstrapper</title><content type='html'>With .net Framework 2.0, Microsoft has provided a generic bootstrapper (Setup.bin), which can be used to deploy complex application having lots of dependencies.&lt;br /&gt;&lt;br /&gt;Pull based deployment technology, ClickOnce also uses the same bootstrapper component for application deployment.&lt;br /&gt;&lt;br /&gt;The concept of bootstrapper is based around packages. So you have any application which you needs to deploy. It could be .msi of a custom executable. That application depends on certain prerequisites to be installed on target machine. Windows Installer could be one of them, if your application is packages as msi.&lt;br /&gt;&lt;br /&gt;So the deal is that you encapsulate all the prerequisite in their respective packages using a published xml schema. Every package is written using 2 xml files. (Package.xml and Product.xml). So specify required installation instractions for every package in these 2 files.&lt;br /&gt;&lt;br /&gt;Once you are finished with packages. You feed all those package files along to an MSBuild task-- which will take the bare setup.bin, process instructions from all the files and put certain markers into the setup.bin file and in end emits a setup.exe -- which is final bootstrapper.&lt;br /&gt;&lt;br /&gt;Now you distribute this bootstrapper alone -- When this bootstrapper will be executed on target machine. First thing it will do is to see what prerequieste needs to be installed. If it finds that certain prerequisites needs to be installed. It fectches them from some location (could be Web or UNC) and install them. It only install those prerequiste which are not present on the target machine.&lt;br /&gt;Once all the prerequiste got installed, it launches thet setup of your application.&lt;br /&gt;&lt;br /&gt;So bootstrapper makes the deployment fairly easy task.&lt;br /&gt;&lt;br /&gt;By the way, if you use ClickOnce and ClickOnce Publish page-- Most of this stuff is done for you. You don't need to know all this detail. But it's handy if you need to write your own packages and have to build custom bootstrapper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-114319979535610836?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/114319979535610836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=114319979535610836' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/114319979535610836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/114319979535610836'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2006/03/deployment-with-generic-bootstrapper.html' title='Deployment with Generic Bootstrapper'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-113758089918881846</id><published>2006-01-18T02:38:00.000-08:00</published><updated>2006-01-18T02:46:21.820-08:00</updated><title type='text'>div and CSS</title><content type='html'>Very good presenation showing the use of div and CSS to create professional and device independent web site.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hotdesign.com/seybold"&gt;http://www.hotdesign.com/seybold/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-113758089918881846?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/113758089918881846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=113758089918881846' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/113758089918881846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/113758089918881846'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2006/01/div-and-css.html' title='div and CSS'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-113741477806293236</id><published>2006-01-16T04:23:00.000-08:00</published><updated>2006-01-16T04:32:58.080-08:00</updated><title type='text'>Adding new Page to Outlook Options Dialog (C#)</title><content type='html'>Standard way is create a new user control (a class derived from System.Windows.UserControl) and use it as your custom page.&lt;br /&gt;&lt;br /&gt;To hook this custom page in Outlook options dialog, create an event handler for&lt;br /&gt;&lt;strong&gt;&lt;em&gt;OptionsPagesAdd &lt;/em&gt;&lt;/strong&gt;event of a &lt;strong&gt;Application &lt;/strong&gt;object like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;this.OptionsPagesAdd += delegate(Outlook.PropertyPages pages)&lt;br /&gt;{&lt;br /&gt;       pages.Add(new CustomPageControl(), "My Page");&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Now one caveat, if you go this way-- you will encounter "operation failed" exception -- quite nasty.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;Because Outlook property pages expects a control as COM activeX. By default your user control is not visible to COM, so it can't be used as property page.&lt;br /&gt;&lt;br /&gt;Solution is to apply ComVisible(true) attribute to you custom control class like this:&lt;br /&gt;&lt;br /&gt;[ComVisible(true)]&lt;br /&gt;public class CustomPageControl:System.Windows.Forms.UserControl&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Without [ComVisible(true)], you will always get operation failed exception.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-113741477806293236?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/113741477806293236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=113741477806293236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/113741477806293236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/113741477806293236'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2006/01/adding-new-page-to-outlook-options.html' title='Adding new Page to Outlook Options Dialog (C#)'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9093009.post-110121191513843386</id><published>2004-11-23T04:03:00.000-08:00</published><updated>2004-11-23T04:20:01.946-08:00</updated><title type='text'>Tease yourself</title><content type='html'>&lt;p&gt;Replace the TBD comment with a single line of code that causes this program to display &lt;/p&gt;&lt;p&gt;"Win-Dev!"&lt;/p&gt;&lt;p&gt;You can only use the class PrintMessage method for this purpose.  You cannot modify any of the existing code, or add code above or below the existing code. &lt;/p&gt;&lt;p&gt;You can only write one line of code in place of the TBD comment and you cannot use the Console class. &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;class&lt;/span&gt; App &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;void&lt;/span&gt; Main() &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;// TBD &lt;/p&gt;&lt;p&gt;} &lt;/p&gt;&lt;p&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;sealed&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;class&lt;/span&gt; Internal &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;sealed&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;class&lt;/span&gt; Private &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;void&lt;/span&gt; PrintMessage( &lt;span style="color:#3366ff;"&gt;string&lt;/span&gt; s1, &lt;span style="color:#3366ff;"&gt;string&lt;/span&gt; s2 ) &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;System.Console&lt;/span&gt;.WriteLine(s1 + "-" + s2); &lt;/p&gt;&lt;p&gt;} &lt;/p&gt;&lt;p&gt;} &lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9093009-110121191513843386?l=ahmed0192.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ahmed0192.blogspot.com/feeds/110121191513843386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9093009&amp;postID=110121191513843386' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/110121191513843386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9093009/posts/default/110121191513843386'/><link rel='alternate' type='text/html' href='http://ahmed0192.blogspot.com/2004/11/tease-yourself.html' title='Tease yourself'/><author><name>Zulfiqar</name><uri>http://www.blogger.com/profile/01895044513698588630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
