<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">

<channel>
	<title>IProgrammable</title>
	<link>http://www.iprogrammable.com</link>
	<description>Kawalerowicz Consulting News</description>
	<pubDate>Thu, 27 Nov 2008 06:51:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Iprogrammable" type="application/rss+xml" /><item>
		<title>SQL from Linq to Entity Framework</title>
		<link>http://www.iprogrammable.com/2008_11_27/sql-from-linq-to-entity-framework/en/</link>
		<comments>http://www.iprogrammable.com/2008_11_27/sql-from-linq-to-entity-framework/en/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 06:49:03 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_11_27/sql-from-linq-to-entity-framework/</guid>
		<description><![CDATA[Problem: how do I tell what SQL does Linq to Entity Framework generates?
If you are using SQL Server its easy. You start the SQL Profiler and you are done. If you are using Oracle the task is not so easy. You can:
1. start the trace on the Oracle server and get the huge barely readable [...]]]></description>
			<content:encoded><![CDATA[<p>Problem: how do I tell what SQL does Linq to Entity Framework generates?</p>
<p>If you are using SQL Server its easy. You start the <a href="http://msdn.microsoft.com/en-us/library/ms181091.aspx">SQL Profiler</a> and you are done. If you are using Oracle the task is not so easy. You can:</p>
<p>1. start the trace on the Oracle server and get the huge barely readable text file physically on the server and use <a href="http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/sqltrace.htm#1018">TKPROF</a></p>
<p>2. look up the lat SQL query from session using the Enterprise Manager-Konsole</p>
<p>3. buy a 3rd party tool like <a href="http://www.easymatica.com/flextracer/">FlexTracer</a> to trace the OCI communication.</p>
<p>Well yeah! Not fun.</p>
<p>But there is another option inside Entity Framework itself! It is not quite obvious, so it took me a little to figure it out:</p>
<p>((System.Data.Objects.ObjectQuery)Query).ToTraceString()</p>
<p>where Query is something like System.Linq.IQueryable&lt;T&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_11_27/sql-from-linq-to-entity-framework/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Everyone is entitled to broad opinion</title>
		<link>http://www.iprogrammable.com/2008_10_26/everyone-is-entitled-to-broad-opinion/en/</link>
		<comments>http://www.iprogrammable.com/2008_10_26/everyone-is-entitled-to-broad-opinion/en/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 18:18:58 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_10_26/everyone-is-entitled-to-broad-opinion/</guid>
		<description><![CDATA[I had an interesting dispute with my colleague weather to use only qualified type names in code or not. He insisted that we should not use the using directive to introduce a namespace but to write the fully qualified name every time it is necessary. I had quite opposite opinion but I agreed to give [...]]]></description>
			<content:encoded><![CDATA[<p>I had an interesting dispute with my colleague weather to use only qualified type names in code or not. He insisted that we should not use the using directive to introduce a namespace but to write the fully qualified name every time it is necessary. I had quite opposite opinion but I agreed to give it a try. So I started to write</p>
<pre class="code"><span style="color: blue">public class </span><span style="color: black">MyClass
{
    </span><span style="color: blue">public static void </span><span style="color: black">Main()
    {
        System.Console.WriteLine(</span><span style="color: maroon">&#8220;Foo&#8221;</span><span style="color: black">);
    }
}
</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>instead of</p>
<pre class="code"><span style="color: blue">using </span><span style="color: black">System;
</span><span style="color: blue">public class </span><span style="color: black">MyClass
{
    </span><span style="color: blue">public static void </span><span style="color: black">Main()
    {
        Console.WriteLine(</span><span style="color: maroon">&#8220;Foo&#8221;</span><span style="color: black">);
    }
}</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Unfortunately over time it proofed no value to me. I was not happy with this rule, but I thought I’ll consult the brother audience for opinion before I start a holly war against something that I might not fully understand.</p>
<p>I decided to give <a href="http://stackoverflow.com/questions/214825/should-i-agree-to-ban-the-using-directive-from-my-c-projects">stackoverflow.com</a> a try. It is quite new Q&amp;A Service dedicated specially for software developers. I write my question I was given a flood of answers. Some better, some worse. Some hitting the bottom line, some pouring “divine knowledge” of individuals that think they know things better.</p>
<p>Nevertheless the discussion on <a href="http://stackoverflow.com/">stackoverflow.com</a> helped my back my opinion. Give it a try!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_10_26/everyone-is-entitled-to-broad-opinion/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>MTS 2008, Warsaw, Poland</title>
		<link>http://www.iprogrammable.com/2008_10_12/mts-2008-warsaw-poland/en/</link>
		<comments>http://www.iprogrammable.com/2008_10_12/mts-2008-warsaw-poland/en/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 20:28:31 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_10_12/mts-2008-warsaw-poland/</guid>
		<description><![CDATA[
Microsoft Technology Summit 2008 (8th and 9th November), the biggest  Microsoft technology event in Poland went quite well. It was my first MTS and I was trying not to expect anything special. And indeed I haven’t experienced anything  earth shaking but altogether it was quite interesting and a good investment of time. I surely learned [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/10/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/10/image-thumb.png" title="image" style="border: 0px none " alt="image" height="228" width="147" align="right" border="0" /></a></p>
<p>Microsoft Technology Summit 2008 (8th and 9th November), the biggest  Microsoft technology event in Poland went quite well. It was my first MTS and I was trying not to expect anything special. And indeed I haven’t experienced anything  earth shaking but altogether it was quite interesting and a good investment of time. I surely learned a few new things and meet interesting people there. I was astonished by the sheer number of attendees that gathered in there. I presume the old communist “castle” in the center of Warsaw the “Palace of Culture and Science” was the only place to accommodate this whole crowd, but it is not a cushy place. It’s big and cold and far from perfect to host a technology event like that. And well… despite the overwhelming size of this place, you almost have to eat you lunch on the floor, because there was no eno<a href="http://www.iprogrammable.com/wp-content/uploads/2008/10/image1.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/10/image-thumb1.png" title="image" style="border: 0px none ; margin: 0px 10px 0px 0px" alt="image" height="84" width="164" align="left" border="0" /></a>ugh tables ;-)</p>
<p>But I passed the 70-543 Exam there and gained the Microsoft Certified Professional Developer in ASP.NET title. So altogether it was a full success!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_10_12/mts-2008-warsaw-poland/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>What null smaller than 0? Adventures with nullable types in .NET</title>
		<link>http://www.iprogrammable.com/2008_09_09/what-null-smaller-than-0-adventures-with-nullable-types-in-net/en/</link>
		<comments>http://www.iprogrammable.com/2008_09_09/what-null-smaller-than-0-adventures-with-nullable-types-in-net/en/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 19:14:36 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_09_09/what-null-smaller-than-0-adventures-with-nullable-types-in-net/</guid>
		<description><![CDATA[Lets say we have two nullable integers like this:
int? i = null;
int? j = 0;

Is null smaller than 0
Console.WriteLine(i &#60; j);

False – no it is not.
So probably null is greater than 0
Console.WriteLine(i &#62; j);

False – no it is not greater as well.
All right! So null is equal 0. It has to be, JIT has no [...]]]></description>
			<content:encoded><![CDATA[<p>Lets say we have two nullable integers like this:</p>
<pre class="code"><span style="color: blue">int</span><span style="color: black">? i = </span><span style="color: blue">null</span><span style="color: black">;
</span><span style="color: blue">int</span><span style="color: black">? j = </span><span style="color: red">0</span><span style="color: black">;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Is <span style="color: blue">null</span> smaller than <span style="color: red">0</span></p>
<pre class="code"><span style="color: black">Console.WriteLine(i &lt; j);</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>False – no it is not.</p>
<p>So probably <span style="color: blue">null</span> is greater than <span style="color: red">0</span></p>
<pre class="code"><span style="color: black">Console.WriteLine(i &gt; j);</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>False – no it is not greater as well.</p>
<p>All right! So <span style="color: blue">null</span> is equal <span style="color: red">0</span>. It has to be, JIT has no other choice, right?</p>
<pre class="code"><span style="color: black">Console.WriteLine(i == j);</span></pre>
<p><a href="http://11011.net/software/vspaste"></a>Well False too! This two little fellows are not equal too. What? Is it raining frogs and we about to experience Armageddon?</p>
<p>No! We have to use Nullable.Compare() and we will by back in normal world:</p>
<pre class="code"><span style="color: blue">switch </span><span style="color: black">(Nullable.Compare(i, j))
        {
               </span><span style="color: blue">case </span><span style="color: black">-</span><span style="color: red">1</span><span style="color: black">:
                  Console.WriteLine(&#8221;</span><span style="color: teal">i &lt; j</span><span style="color: black">&#8220;);
              </span><span style="color: blue">break</span><span style="color: black">;
               </span><span style="color: blue">case </span><span style="color: red">1</span><span style="color: black">:
                  Console.WriteLine(&#8221;</span><span style="color: teal">i &gt; j</span><span style="color: black">&#8220;);
              </span><span style="color: blue">break</span><span style="color: black">;
               </span><span style="color: blue">case </span><span style="color: red">0</span><span style="color: black">:
                  Console.WriteLine(&#8221;</span><span style="color: teal">i == j</span><span style="color: black">&#8220;);
              </span><span style="color: blue">break</span><span style="color: black">;
        }</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p><span style="color: red">0</span> is a little more than <span style="color: blue">null</span>. <span style="color: blue">null</span> is less than <span style="color: red">0</span>. <span style="color: blue">null</span> equals <span style="color: blue">null</span> and <span style="color: red">0</span> equals <span style="color: red">0</span>.</p>
<p>Uff!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_09_09/what-null-smaller-than-0-adventures-with-nullable-types-in-net/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Enum Factory</title>
		<link>http://www.iprogrammable.com/2008_08_10/enum-factory/en/</link>
		<comments>http://www.iprogrammable.com/2008_08_10/enum-factory/en/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 19:16:22 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_08_10/enum-factory/</guid>
		<description><![CDATA[I have a little tip for you. Let’s say you have an enumeration. You need a enumeration constant out of string variable. simply use System.Enum.Parse(). Here a small Snippet Compiler source code.
using System;
using System.Collections.Generic;

public class MyClass
{
    public enum FooBar
    {
        Foo,
  [...]]]></description>
			<content:encoded><![CDATA[<p>I have a little tip for you. Let’s say you have an <a href="http://msdn.microsoft.com/en-us/library/sbbt4032(VS.80).aspx">enumeration</a>. You need a enumeration constant out of string variable. simply use System.Enum.Parse(). Here a small <a href="http://www.sliver.com/dotnet/SnippetCompiler/">Snippet Compiler</a> source code.</p>
<pre class="code"><span style="color: blue">using </span><span style="color: black">System;
</span><span style="color: blue">using </span><span style="color: black">System.Collections.Generic;

</span><span style="color: blue">public class </span><span style="color: black">MyClass
{
    </span><span style="color: blue">public enum </span><span style="color: black">FooBar
    {
        Foo,
        Bar,
        FooBar
    }</span></pre>
<pre class="code"><span style="color: black">
    </span><span style="color: blue">public static void </span><span style="color: black">Main()
    {
        WL(FooBarFactory(&#8221;</span><span style="color: teal">Foo</span><span style="color: black">&#8220;));
        RL();
    }

    </span><span style="color: blue">public static </span><span style="color: black">FooBar FooBarFactory(</span><span style="color: blue">string </span><span style="color: black">init)
    {
        </span><span style="color: blue">try
        </span><span style="color: black">{
            </span><span style="color: blue">return </span><span style="color: black">(FooBar)System.Enum.Parse(</span><span style="color: blue">typeof</span><span style="color: black">(FooBar), init);
        }
        </span><span style="color: blue">catch
        </span><span style="color: black">{
            </span><span style="color: green">// Do something
            </span><span style="color: blue">throw</span><span style="color: black">;
        }
    }

    </span><span style="color: blue">#region </span><span style="color: black">Helper methods

    </span><span style="color: blue">private static void </span><span style="color: black">WL(</span><span style="color: blue">object </span><span style="color: black">text, </span><span style="color: blue">params object</span><span style="color: black">[] args)
    {
        Console.WriteLine(text.ToString(), args);
    }

    </span><span style="color: blue">private static void </span><span style="color: black">RL()
    {
        Console.ReadLine();
    }

    </span><span style="color: blue">private static void </span><span style="color: black">Break()
    {
        System.Diagnostics.Debugger.Break();
    }

    </span><span style="color: blue">#endregion
</span><span style="color: black">}</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_08_10/enum-factory/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Silverlight for everybody</title>
		<link>http://www.iprogrammable.com/2008_06_22/silverlight-for-everybody/en/</link>
		<comments>http://www.iprogrammable.com/2008_06_22/silverlight-for-everybody/en/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 15:32:01 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_06_22/silverlight-for-everybody/</guid>
		<description><![CDATA[ My fist text for a Polish computer magazine NEXT hast just been published. It is called “Silverlight for everybody”. New publisher new challenge. I hope for a long lasting collaboration. In a mean time you can check my GeoCodedCalcualtor. A simple piece of Silverlight app that calculates the degrees, minutes, seconds form of latitude, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/06/image5.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/06/image-thumb5.png" alt="image" style="border: 0px none " title="image" align="left" border="0" height="90" width="146" /></a> My fist text for a Polish computer <a href="http://www.nextmag.pl/">magazine NEXT</a> hast just been published. It is called “Silverlight for everybody”. New publisher new challenge. I hope for a long lasting collaboration. In a mean time you can check my <a href="http://kawalerowicz.net/GeoCodeCalculator/GeoCoderCalculatorTestPage.html">GeoCodedCalcualtor</a>. A simple piece of Silverlight app that calculates the degrees, minutes, seconds form of latitude, longitude notation to a numeric notation and shows the translated coordinates using Google Static Maps Api. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_06_22/silverlight-for-everybody/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Remember to brake your egg at the small end*</title>
		<link>http://www.iprogrammable.com/2008_06_09/remember-to-brake-your-egg-at-the-small-end/en/</link>
		<comments>http://www.iprogrammable.com/2008_06_09/remember-to-brake-your-egg-at-the-small-end/en/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 19:53:15 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Clarion]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_06_09/remember-to-brake-your-egg-at-the-small-end/</guid>
		<description><![CDATA[Sometimes the interoperability between .NET and Win32 could by a pain in the ass. Especially in places you don&#8217;t expect it to be. I&#8217;ve worked recently on a cryptography algorithm. I had the source code in Clarion and all I had to do was to implement it in C#. No problem I guessed. But&#8230; The [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes the interoperability between .NET and Win32 could by a pain in the ass. Especially in places you don&#8217;t expect it to be. I&#8217;ve worked recently on a cryptography algorithm. I had the source code in <a href="http://www.softvelocity.com/">Clarion</a> and all I had to do was to implement it in C#. No problem I guessed. But&#8230; The Clarion algorithm used pointers extensively. I have worked with byte arrays. I read the text as a char array and I copied the bytes into long variables using a binary shift. Lets say we have a</p>
<pre class="code"><span style="color: blue">string </span><span style="color: black">s = &#8220;</span><span style="color: teal">abcd</span><span style="color: black">&#8220;;</span></pre>
<p>Its something like this:</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/06/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/06/image-thumb.png" style="border-width: 0px" alt="image" border="0" height="65" width="469" /></a></p>
<p>If we try to interpret this as a uint variable:</p>
<pre class="code"><span style="color: blue">uint </span><span style="color: black">ui = (</span><span style="color: blue">uint</span><span style="color: black">)((s[0</span><span style="color: black">] &lt;&lt; </span><span style="color: red">24</span><span style="color: black">) | (s[1</span><span style="color: black">] &lt;&lt; </span><span style="color: red">16</span><span style="color: black">) | (s[2</span><span style="color: black">] &lt;&lt; </span><span style="color: red">8</span><span style="color: black">) | s[3</span><span style="color: black">]);</span></pre>
<p>we will get something like this number 1633837924.</p>
<p>Lets look at this from the other side. Our string goes direct into memory:</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/06/image1.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/06/image-thumb1.png" style="border-width: 0px" alt="image" border="0" height="65" width="469" /></a></p>
<p>Using Win32 compiler we want to read it to a ulong variable x from a px address. In Clarion the code to do this will look like this:</p>
<p>x                      &amp;ulong</p>
<p>long                 px</p>
<p>x &amp;= (px)</p>
<p>What do we get in x?</p>
<p>1684234849</p>
<p>Hmm, variable ui in C# and x in Wind32 are not the same. Why? Because Intel is using a small endian way to store the numbers. So it means that the highest byte is saved at the right side and the lowest at the left. Like this (small endian):</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/06/image2.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/06/image-thumb2.png" style="border-width: 0px" alt="Small_Endian" border="0" height="173" width="471" /></a></p>
<p>and not (big endian)</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/06/image3.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/06/image-thumb3.png" style="border-width: 0px" alt="Big_Endian" border="0" height="173" width="471" /></a></p>
<p>* In Jonathan Swift&#8217;s Gulliver&#8217;s Travels the Little Endians broke their eggs at the small end, where the Big Endians broke theirs at the large end. And the ones were not very fond of the others ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_06_09/remember-to-brake-your-egg-at-the-small-end/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Multiple projects - multiple repositories</title>
		<link>http://www.iprogrammable.com/2008_04_26/multiple-projects-multiple-repositories/en/</link>
		<comments>http://www.iprogrammable.com/2008_04_26/multiple-projects-multiple-repositories/en/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 19:00:22 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[SVN]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_04_26/multiple-projects-multiple-repositories/</guid>
		<description><![CDATA[Do you have one project you want to share between multiple solutions? Something like a big set of helpers or a framework you need here and there? There are multiple ways ones have achieved this goal. Let me describe how I&#8217;ve done this.
We work with Visual Studio as our main development environment and Subversion as [...]]]></description>
			<content:encoded><![CDATA[<p>Do you have one project you want to share between multiple solutions? Something like a big set of helpers or a framework you need here and there? There are multiple ways ones have achieved this goal. Let me describe how I&#8217;ve done this.</p>
<p>We work with Visual Studio as our main development environment and Subversion as our source control system. What we needed was a systematic approach where we share our framework across all of our projects. We are actively developing our framework so simple dll reference is not an option. Our rules according to framework development make it fairly save to share the same code across multiple projects and to develop at the same time.</p>
<p>We decided that the framework should by placed in separate SVN repository and a separate Visual Studio project. But we wanted the framework and the project being pullable from source control as a whole. Firstly because we are (I&#8217;m!) lazy and I don&#8217;t want to remember that I have to check out the framework and than the project separately. Secondly we have a living Continuous Integration system running on CruiseControl.NET and it should by able to detect the changes and build to project in one shot.</p>
<p>Our way is to add the framework as an existing project from separate solutions&#8230;</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/04/image1.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/04/image-thumb1.png" style="border-width: 0px" alt="Project structure" border="0" height="195" width="303" /></a></p>
<p>and to connect the main SVN project repository with framework repository as a <a href="http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html">svn:external</a>.</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/04/image2.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/04/image-thumb2.png" style="border-width: 0px" alt="Folder structure" border="0" height="257" width="303" /></a></p>
<p>Step by step solution:</p>
<p>1. Create &#8220;Framework&#8221; Project in Visual Studio</p>
<p>2. Create a SVN repository for this project (check everything you need in)</p>
<p>3. Create new solution in Visual Studio that will hold your &#8220;Project&#8221;</p>
<p>4. Create a SVN repository for this project</p>
<p>5. Create new folder on hard drive inside the &#8220;Project&#8221; folder</p>
<p>6. Check out the framework from repository into newly created folder</p>
<p>7. In Visual Studio add the framework to you solution as a existing project.</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/04/image3.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/04/image-thumb3.png" style="border-width: 0px" alt="Adding exisitng project" border="0" height="315" width="275" /></a></p>
<p>8. Link the Framework repository with the Project repository (using svn propset or with TortoiseSVN like this)</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/04/image4.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/04/image-thumb4.png" style="border-width: 0px" alt="svn:externals" border="0" height="308" width="433" /></a></p>
<p>You are done!</p>
<p>Now if you check out the &#8220;Project&#8221; you will get the &#8220;Framework&#8221; automatically. Unfortunately if you will make changes into &#8220;Framework&#8221; you will not by able to checkc everything in. You will have to separately check the &#8220;Framework&#8221; changes and &#8220;Project&#8221; changes. But if you are using Tortoise SVN you will by warned.</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/04/image5.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/04/image-thumb5.png" style="border-width: 0px" alt="TortoiseSvn externals warning" border="0" height="76" width="474" /></a></p>
<p>Is is cool or not!?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_04_26/multiple-projects-multiple-repositories/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Aiding your work with Visual Studio Code Snippets</title>
		<link>http://www.iprogrammable.com/2008_04_16/aiding-your-work-with-visual-studio-code-snippets/en/</link>
		<comments>http://www.iprogrammable.com/2008_04_16/aiding-your-work-with-visual-studio-code-snippets/en/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 17:35:38 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_04_16/aiding-your-work-with-visual-studio-code-snippets/</guid>
		<description />
			<content:encoded />
			<wfw:commentRss>http://www.iprogrammable.com/2008_04_16/aiding-your-work-with-visual-studio-code-snippets/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Writing MSBuild Custom Task</title>
		<link>http://www.iprogrammable.com/2008_03_13/writing-msbuild-custom-task/en/</link>
		<comments>http://www.iprogrammable.com/2008_03_13/writing-msbuild-custom-task/en/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 18:16:49 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[MSBuild]]></category>

		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_03_13/writing-msbuild-custom-task/</guid>
		<description><![CDATA[Scenario: we have Subversion server to manage our source code and a build server (CruiseControl.NET) to manage our deployment. We have decided to automatically set the SVN revision number to our assembly version.
[assembly: System.Reflection.AssemblyVersion(&#8220;1.2.3.0&#8243;)]
[assembly: System.Reflection.AssemblyFileVersion(&#8220;1.2.3.0&#8243;)]

So we will replace the last 0 with the current Subversion revision number. How to do this? One way to achieve [...]]]></description>
			<content:encoded><![CDATA[<p>Scenario: we have Subversion server to manage our source code and a build server (CruiseControl.NET) to manage our deployment. We have decided to automatically set the SVN revision number to our assembly version.</p>
<pre class="code"><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">[</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">assembly</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">: </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">System</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Reflection</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: #a65300; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">AssemblyVersion</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;1.2.3.0&#8243;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">)]
[</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">assembly</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">: </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">System</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: maroon; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Reflection</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: #a65300; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">AssemblyFileVersion</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;1.2.3.0&#8243;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">)]</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>So we will replace the last 0 with the current Subversion revision number. How to do this? One way to achieve this is to modify the AssemblyInfo.cs and read the modified number from that exists. The file modification is easy with MSBuild Community Task FileUpdate</p>
<pre class="code"><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&lt;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: #a31515; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">FileUpdate </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: red; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Files</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Cic.P001001PropertiesAssemblyInfo.cs</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221;
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: red; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Regex</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(d+).(d+).(d+).(d+)</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221;
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: red; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ReplacementText</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">$1.$2.$3.$(RevisionNumber)</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221; </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; color: blue; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">/&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>But how to read it back? Well there is no easy way. I have written a custom MSBuidl task to achieve this like this:</p>
<pre class="code"><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">&lt;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a31515">AssemblyInfoReader </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: red">Path</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">PropertiesAssemblyInfo.cs</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221;
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: red">Property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">AssemblyVersion</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">&gt;
    &lt;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a31515">Output </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: red">TaskParameter</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">Value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221; </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: red">ItemName</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">=</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">ApplicationVersion</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8221; </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">/&gt;
&lt;/</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a31515">AssemblyInfoReader</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a><br />
Writing a custom MSBuild task is fairly easy. You have to Reference Microsoft.Build.Framework and Microsoft.Build.Utilities and implement Microsoft.Build.Framework.ITask. Just like this:</p>
<pre class="code"><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">namespace </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Cic</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">MsBuildTasks
</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">public class </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">AssemblyInfoReader </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">: </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITask
    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">#region </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Private Varaibels

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">path</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">#endregion

        #region </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Fields
        [</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">Required</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">]
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">public string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Path
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">get </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">path</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">set </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">path </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
        }

        [</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">Required</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">]
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">public string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Property
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">get </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">set </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
        }

        [</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">Output</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">]
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">public string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Value
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">get </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return this</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">set </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{ </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">this</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">; }
        }

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">#endregion

        #region </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ITask Members
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">IBuildEngine </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">engine</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">IBuildEngine
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITask</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">BuildEngine
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">get
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">engine</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">set
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">engine </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            }
        }

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">bool </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITask</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Execute</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">()
        {
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">message</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Empty</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">try
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">MyReadAssemblyInfoProperty</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">();
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">message </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Format</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(
                    </span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;AssemblyInfo property {0} read. Property value {1}&#8221;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">,
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">, </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">);
            }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">catch </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">System</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">Exception </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">e</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">)
            {
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">message </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Format</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(
                    </span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;Error reading AssemblyInfo property {0}. Error: {1}&#8221;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">,
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">, </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">e</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Message</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">);
            }

            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">BuildMessageEventArgs </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">args </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">=
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">new </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">BuildMessageEventArgs</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">message</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">, </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Empty</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">, </span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;AssemblyInfoReaderTask&#8221;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">,
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">MessageImportance</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Normal</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">);
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">engine</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">LogMessageEvent</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">args</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">);

            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return true</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        }

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITaskHost </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">host</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITaskHost </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Microsoft</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Build</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Framework</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">ITask</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">HostObject
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">get
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">host</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            }
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">set
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">host </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">value</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
            }
        }

        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">#endregion

        #region </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Internals
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">private string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">MyReadAssemblyInfoProperty</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">()
        {
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;

            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: green">// Eraly return
            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">if </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(!</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">System</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">IO</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">File</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Exists</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">path</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">)) </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8220;&#8221;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;

            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">foreach </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">string </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">line </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">in </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">System</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">IO</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #a65300">File</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">ReadAllLines</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">path</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">))
            {
                </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">if </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">line</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Contains</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">property</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">))
                {
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">try
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">line</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Remove</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #e6ffff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">0</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">, </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">line</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">IndexOf</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8216;&#8221;&#8216;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">) + </span><span style="background: #e6ffff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">1</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">);
                        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">= </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Remove</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(
                            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">LastIndexOf</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8216;&#8221;&#8216;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">),
                            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Length </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">- </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">LastIndexOf</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">(</span><span style="background: #ffffe6 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&#8216;&#8221;&#8216;</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">));
                        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: green">// return matching property value
                        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">propertyValue</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
                    }
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">catch
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">{
                        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: green">// Ignore errors
                    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">}
                }
            }

            </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: navy">return string</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">.</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: maroon">Empty</span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">;
        }
        </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue">#endregion
    </span><span style="background: #f8f8f8 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">}
}
</span></pre>
<p><a href="http://11011.net/software/vspaste"></a><br />
<a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_03_13/writing-msbuild-custom-task/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Developing Vista Sidebar Gadget with Script#</title>
		<link>http://www.iprogrammable.com/2008_01_19/developing-vista-sidebar-gadget/en/</link>
		<comments>http://www.iprogrammable.com/2008_01_19/developing-vista-sidebar-gadget/en/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 13:08:37 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[MSBuild]]></category>

		<category><![CDATA[Vista Sidebar Gadget]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_01_19/developing-vista-sidebar-gadget/</guid>
		<description><![CDATA[C# to JavaScript compiler? What? Jea! I thought the same way. It&#8217;s amazing what smart people can invent. My men is Nikhil Kothari with his Script#. What do I need the C# to JavaScript compiler for, you ask. Is IL not enough? Well think of enriching your ASP.NET web sites with JavaScript written in C#. [...]]]></description>
			<content:encoded><![CDATA[<p>C# to JavaScript compiler? What? Jea! I thought the same way. It&#8217;s amazing what smart people can invent. My men is <a href="http://www.nikhilk.net/">Nikhil Kothari</a> with his Script#. What do I need the C# to JavaScript compiler for, you ask. Is IL not enough? Well think of enriching your ASP.NET web sites with JavaScript written in C#. Or using Ajax with scripts written in Visual Studio with Intelisense and refactoring. Or developing the Vista Sidebar Gadgets without writing a single line of code in Javascript!</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/01/image4.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/01/image-thumb4.png" style="border: 0px none " alt="Leasing Calculator" align="right" border="0" height="162" width="162" /></a> I instantly lookd at the third possibility. since I have Vista on board I was thinking about writing my own Sidebar Gadget (you know the little programs written in HTML an JavaScript, sticked to the right side of your screen). Of course I wonted it to by at least useful ;-) I thought about writing a small Leasing Calculator. I had my leasing mathematics library ready, but it was written in C#. I didn&#8217;t feel like rewriting it in JavaScript - what for? So Script# was a blast for me. I had my Leasing Calculator gadget in view hours.</p>
<p>What do you need to start working with Script#:</p>
<p>1. download the latest binaries from <a href="http://www.nikhilk.net/Project.ScriptSharp.aspx">Script# project page</a></p>
<p>2. install it</p>
<p>3. create new <em>Visual C# -&gt; Script# -&gt; Sidebar Gadget</em> project in Visual Studio</p>
<p>You will get quite useful project template. The inside of Content folder is your gadget. If you compile everything Script# will transform your C# into JavaScript and place it in this folder. The last thing you have to do is to copy this folder into your Vista Gadgets folder (<em>C:\Users\user\AppData\Local\Microsoft\Windows Sidebar\Gadgets\</em>). You will have to do the same every time you will compile. Surely it is something to automate. The easiest way is to use the Post-build event in your project and a small MSBuild script that will copy the needed files to the place they should by.</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/01/image5.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/01/image-thumb5.png" style="border: 0px none " alt="VS2005 post build event" border="0" height="396" width="542" /></a></p>
<p>$(WinDir)\Microsoft.NET\Framework\v2.0.50727\msbuild.exe $(SolutionDir)build.msbuild</p>
<p>And use this script:</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">Project </span><span style="color: red">DefaultTargets</span><span style="color: blue">=</span>&#8220;<span style="color: blue">Deploy</span>&#8221; <span style="color: red">xmlns</span><span style="color: blue">=</span>&#8220;<span style="color: blue">http://schemas.microsoft.com/developer/msbuild/2003</span>&#8220;<span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">PropertyGroup</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">DeploymentFolder</span><span style="color: blue">&gt;</span>YourVistaGadgetFolder.gadget<span style="color: blue">&lt;/</span><span style="color: #a31515">DeploymentFolder</span><span style="color: blue">&gt;
  &lt;/</span><span style="color: #a31515">PropertyGroup</span><span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">ItemGroup</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">DeploymentSourceFiles </span><span style="color: red">Include</span><span style="color: blue">=</span>&#8220;<span style="color: blue">LeasingCalculatorContent***.*</span>&#8221; <span style="color: blue">/&gt;
  &lt;/</span><span style="color: #a31515">ItemGroup</span><span style="color: blue">&gt;
   &lt;</span><span style="color: #a31515">Target </span><span style="color: red">Name</span><span style="color: blue">=</span>&#8220;<span style="color: blue">Deploy</span>&#8220;<span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">RemoveDir </span><span style="color: red">Directories</span><span style="color: blue">=</span>&#8220;<span style="color: blue">$(DeploymentFolder)</span>&#8221; <span style="color: red">ContinueOnError</span><span style="color: blue">=</span>&#8220;<span style="color: blue">false</span>&#8220;<span style="color: blue">&gt;&lt;/</span><span style="color: #a31515">RemoveDir</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">Copy </span><span style="color: red">SourceFiles</span><span style="color: blue">=</span>&#8220;<span style="color: blue">@(DeploymentSourceFiles)</span>&#8221;
      <span style="color: red">DestinationFiles</span><span style="color: blue">=</span>&#8220;<span style="color: blue">@(DeploymentSourceFiles-&gt;
      &#8216;$(DeploymentFolder)%(RecursiveDir)%(Filename)%(Extension)&#8217;)</span>&#8220;<span style="color: blue">/&gt;
   &lt;/</span><span style="color: #a31515">Target</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">Project</span><span style="color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></p>
<p>So you are equipped with fully functional development platform for Vista Sidebar Gadgets.</p>
<p>One more thing. I do think that writing a JavaScript in C# is a good idea ;) but if you are new to Sidebar Gadgets you probably would like to take one <a href="http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx">step by step tutorial</a>. It would help to understand Gadgets on the low level an d will get you up to speed with Schipr# later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_01_19/developing-vista-sidebar-gadget/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>I’m sure you don’t care…</title>
		<link>http://www.iprogrammable.com/2008_01_12/im-sure-you-dont-care/en/</link>
		<comments>http://www.iprogrammable.com/2008_01_12/im-sure-you-dont-care/en/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 08:54:20 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2008_01_12/im-sure-you-dont-care/</guid>
		<description><![CDATA[&#8230; but I&#8217;m very glad so I share ;-)
I&#8217;ve just became a MCTS - Microsoft Certified Technology Specialist in ASP.NET. I passed the 70-536 and 70-528 (with quite good marks). Now I&#8217;m starting to learn to became Professional Developer (exam 70-547). Wish my luck!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2008/01/image3.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2008/01/image-thumb3.png" style="border-width: 0px" alt="image" align="left" border="0" height="143" width="199" /></a>&#8230; but I&#8217;m very glad so I share ;-)</p>
<p>I&#8217;ve just became a MCTS - Microsoft Certified Technology Specialist in ASP.NET. I passed the 70-536 and 70-528 (with quite good marks). Now I&#8217;m starting to learn to became Professional Developer (exam 70-547). Wish my luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2008_01_12/im-sure-you-dont-care/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Language doesn’t matter</title>
		<link>http://www.iprogrammable.com/2007_12_31/language-doesnt-matter/en/</link>
		<comments>http://www.iprogrammable.com/2007_12_31/language-doesnt-matter/en/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 22:27:44 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<c