<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>IProgrammable &#187; Continuous Integration</title>
	<link>http://www.iprogrammable.com</link>
	<description>Kawalerowicz Consulting News</description>
	<pubDate>Thu, 21 Jan 2010 16:11:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Speaking about continuous integration</title>
		<link>http://www.iprogrammable.com/2010_01_16/speaking-about-continuous-integration/en/</link>
		<comments>http://www.iprogrammable.com/2010_01_16/speaking-about-continuous-integration/en/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 17:09:55 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2010_01_16/speaking-about-continuous-integration/</guid>
		<description><![CDATA[ I will be speaking on Wednesday (20.01.2010) in Krakow, Poland at the Karkow .NET Developers Group meeting. The session is about Continuous Integration in .NET. So if you like hear what I have to say about CI meet me at ABB ISDC, Pałac Pugetow, ul. Starowislna 13, Krakow at 18:30. I believe the attendance [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2010/01/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2010/01/image-thumb.png" style="border: 0px none ; margin: 0px 10px 0px 0px; display: inline" title="image" alt="image" align="left" border="0" height="164" width="164" /></a> I will be speaking on Wednesday (20.01.2010) in Krakow, Poland at the <a href="http://ms-groups.pl/kgd.net/">Karkow .NET Developers Group</a> meeting. The session is about Continuous Integration in .NET. So if you like hear what I have to say about CI meet me at ABB ISDC, Pałac Pugetow, ul. Starowislna 13, Krakow at 18:30. I believe the attendance is free but registration is required. See you in Krakow!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2010_01_16/speaking-about-continuous-integration/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Selenium RC and FitNesse as a service on Windows Server 2008</title>
		<link>http://www.iprogrammable.com/2009_11_07/selenium-rc-and-fitnesse-as-a-service-on-windows-server-2008/en/</link>
		<comments>http://www.iprogrammable.com/2009_11_07/selenium-rc-and-fitnesse-as-a-service-on-windows-server-2008/en/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 20:19:16 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Windows]]></category>

		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2009_11_07/selenium-rc-and-fitnesse-as-a-service-on-windows-server-2008/</guid>
		<description><![CDATA[If you are working in a team or running a continuous integration process the most comfortable way to run tools like Selenum RC Server or FitNesse is to install them as a windows service. I was doing this earlier on my old Windows Server 2003 by issuing the  instsrv.exe (to install a service) on srvany.exe [...]]]></description>
			<content:encoded><![CDATA[<p>If you are working in a team or running a continuous integration process the most comfortable way to run tools like Selenum RC Server or FitNesse is to install them as a windows service. I was doing this earlier on my old Windows Server 2003 by issuing the  instsrv.exe (to install a service) on srvany.exe (to run anything) - both from Windows Resource Kit. I had to edit the registry to provide what exactly do I wanted to run (java –jar selenium-server.jar or java –jar fitnesse.jar).</p>
<p>But there is no Windows Resource Kit for 2008. You might use the sc.exe and get the old srvany.exe (with compatibility issues according to Microsoft itself). It would work but why bother when there is a <a href="http://iain.cx/src/nssm/">Non-Sucking Service Manager</a>! All you have to do to install a service with this tool is to download it, issue a</p>
<p>nssm.exe install SeleniumRC</p>
<p>and edit this dialog box:</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2009/11/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2009/11/image-thumb.png" style="border: 0px none ; display: inline" title="image" alt="image" border="0" height="175" width="340" /></a></p>
<p>Click Install service and you are done. Selenium RC Server is installed. All you have to do is to start it. Voila!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2009_11_07/selenium-rc-and-fitnesse-as-a-service-on-windows-server-2008/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>How to make CruiseControl.NET accept SSL certificate under Windows Server 2008?</title>
		<link>http://www.iprogrammable.com/2009_10_24/how-to-make-cruisecontrolnet-accept-ssl-certificate-under-windows-server-2008/en/</link>
		<comments>http://www.iprogrammable.com/2009_10_24/how-to-make-cruisecontrolnet-accept-ssl-certificate-under-windows-server-2008/en/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 21:44:42 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Windows]]></category>

		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2009_10_24/how-to-make-cruisecontrolnet-accept-ssl-certificate-under-windows-server-2008/</guid>
		<description><![CDATA[If you are running CruiseControl.NET under the Local System account and your SVN server certificate was issued by yourself (or by VisualSVN Server) you will quickly run into trouble. Normally if you run any command on your repository you will get this information:
C:\Program Files\svn\bin&#62;svn log https://your_server/svn/your_repository/trunk &#8211;username username &#8211;password password
Error validating server certificate for &#8216;https://your_server:443&#8242;:
- [...]]]></description>
			<content:encoded><![CDATA[<p>If you are running CruiseControl.NET under the Local System account and your SVN server certificate was issued by yourself (or by VisualSVN Server) you will quickly run into trouble. Normally if you run any command on your repository you will get this information:</p>
<p>C:\Program Files\svn\bin&gt;svn log <a href="https://your_server/svn/your_repository/trunk">https://your_server/svn/your_repository/trunk</a> &#8211;username username &#8211;password password<br />
Error validating server certificate for &#8216;<a href="https://your_server:443':">https://your_server:443&#8242;:</a><br />
- The certificate is not issued by a trusted authority. Use the<br />
fingerprint to validate the certificate manually!<br />
- The certificate hostname does not match.<br />
Certificate information:<br />
- Hostname: your_server<br />
- Valid: from Sat, 26 Sep 2009 17:24:27 GMT until Tue, 24 Sep 2019 17:24:27 GMT</p>
<p>- Issuer: your_server<br />
- Fingerprint: 24:8e:f6:ba:c7:a6:3f:69:32:c0:21:92:64:44:62:fe:2c:bb:b4:69<br />
(R)eject, accept (t)emporarily or accept (p)ermanently?</p>
<p>If you accept you will not be bothered again. But CCNet works as a Windows Service. There is no one to make the decision. How to deal with this issue. Well earlier it was easy enough. You had to use one of the security holes and start cmd.exe in interactive mode wit at command (<a href="http://blog.threenine.co.uk/Posts/tabid/93/EntryId/4/CruiseControl-Accept-SSL-Certificate-Local-System-Account.aspx">look here for more details</a>). But with Windows Server 2008 it is not possible you will simply get this:</p>
<p>C:\Users\Administrator&gt;time<br />
The current time is: 23:31:11.59<br />
Enter the new time:</p>
<p>C:\Users\Administrator&gt;at 22:32 /interactive cmd.exe<br />
Warning: Due to security enhancements, this task will run at the time<br />
expected but not interactively.<br />
Use schtasks.exe utility if interactive task is required (&#8217;schtasks /?&#8217;<br />
for details).<br />
Added a new job with job ID = 1</p>
<p>How to deal with this. There is very easy solution. Set the CruiseContril.NET service “Allow to interact with desktop” flag (Start –&gt; Control Panel –&gt; Administrative Tools –&gt; Services –CruiseControl.NET) like this</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2009/10/image1.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2009/10/image-thumb1.png" style="border: 0px none ; display: inline" title="image" alt="image" border="0" width="218" height="244" /></a></p>
<p>Restart the service and wait a while for this windows to appear:</p>
<p><a href="http://www.iprogrammable.com/wp-content/uploads/2009/10/image2.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2009/10/image-thumb2.png" style="border: 0px none ; display: inline" title="image" alt="image" border="0" width="244" height="123" /></a></p>
<p>Select show me the message.</p>
<p>Voila! You have command line as Local System user available. You can now issue the</p>
<p>C:\Program Files\svn\bin&gt;svn log <a href="https://your_server/svn/your_repository/trunk">https://your_server/svn/your_repository/trunk</a> &#8211;username username &#8211;password password<br />
command and accept the SSL certificate permanently.</p>
<p><img src="http://www.iprogrammable.com/wp-content/uploads/2009/10/image3.png" style="border: 0px none ; display: inline" title="Local Service User Accepting SSL SVN certificate fir CruiseControl.NET server" alt="Local Service User Accepting SSL SVN certificate fir CruiseControl.NET server" border="0" width="244" height="186" /></p>
<p>From this time on you CCNet server will not have any problems with accessing your secured repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2009_10_24/how-to-make-cruisecontrolnet-accept-ssl-certificate-under-windows-server-2008/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Buy Continuous Integration in .NET book</title>
		<link>http://www.iprogrammable.com/2009_10_19/buy-continuous-integration-in-net-book/en/</link>
		<comments>http://www.iprogrammable.com/2009_10_19/buy-continuous-integration-in-net-book/en/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 05:52:50 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[Books]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2009_10_19/buy-continuous-integration-in-net-book/</guid>
		<description><![CDATA[
The Continuous Integration in .NET book is available as an early access edition from MEAP. For those of you that are not familiar with MEAP it stands for Manning Early Access Program and it is the place where you can download a free chapter and buy the whole book printed or as an ebook before [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2009/10/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2009/10/image-thumb.png" style="border: 0px none ; margin: 0px 5px 0px 0px; display: inline" title="Continuous Integration in .NET book cover" alt="Continuous Integration in .NET book cover" align="left" border="0" width="150" height="187" /></a></p>
<p>The Continuous Integration in .NET book is available as an <a href="http://www.manning.com/kawalerowicz/">early access edition from MEAP</a>. For those of you that are not familiar with MEAP it stands for Manning Early Access Program and it is the place where you can download a free chapter and buy the whole book printed or as an ebook before it gets published. You will get continuously chapter after chapter successively as they will be written.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2009_10_19/buy-continuous-integration-in-net-book/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Next big thing &#8211; continuous integration book</title>
		<link>http://www.iprogrammable.com/2009_08_14/next-big-thing-continuous-integration-book/en/</link>
		<comments>http://www.iprogrammable.com/2009_08_14/next-big-thing-continuous-integration-book/en/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:39:59 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[Books]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2009_08_14/next-big-thing-continuous-integration-book/</guid>
		<description><![CDATA[ I’m going to write a book about Continuous Integration in .NET for the Manning Publications. I’m sure I don’t have to tell you how exited am I. I will join the noble team of Manning authors like John Skeet, Ayende Rahien or Roy Osherove. I’ll keep you posted about the progress. In the mean [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iprogrammable.com/wp-content/uploads/2009/08/image.png"><img src="http://www.iprogrammable.com/wp-content/uploads/2009/08/image-thumb.png" style="border: 0px none ; margin: 0px 10px 0px 0px; display: inline" title="image" alt="image" align="left" border="0" height="72" width="262" /></a> I’m going to write a book about Continuous Integration in .NET for the <a href="http://www.manning.com/">Manning Publications</a>. I’m sure I don’t have to tell you how exited am I. I will join the noble team of Manning authors like <a href="http://www.amazon.com/Depth-What-you-need-master/dp/1933988363/ref=sr_1_1?ie=UTF8&amp;qid=1250278049&amp;sr=8-1">John Skeet</a>, <a href="http://www.amazon.com/Building-Domain-Specific-Languages-Boo/dp/1933988606/ref=sr_1_1?ie=UTF8&amp;qid=1250278074&amp;sr=8-1">Ayende Rahien</a> or <a href="http://www.amazon.com/Art-Unit-Testing-Examples-NET/dp/1933988274/ref=sr_1_1?ie=UTF8&amp;qid=1250278097&amp;sr=8-1">Roy Osherove</a>. I’ll keep you posted about the progress. In the mean time let me give you some history.</p>
<p>I’ve once written an article for Software Developers Journal about Continuous Integration in .NET. It was very well received. I always thought I have a lot more to say in this topic. The idea to write a book came while speaking with my good friend hsd (well I have more and more to thank you for :). I’ve tried to propose the book to a polish publisher <a href="http://helion.pl/">Helion</a>. Very fortunately for me they said there is not enough place on the polish marketplace to get enough sell (<a href="http://www.iprogrammable.com/2009_05_03/ksiazka-o-continuous-integration/pl/">I’ve blogged about this in polish</a>). I presume they know better. I’ve already buried the idea about the book when I saw the <a href="http://www.amazon.com/ASP-NET-MVC-Quickly-Maarten-Balliauw/dp/184719754X">ASP.NET MVC 1.0 Quickly</a> book from <a href="http://www.packtpub.com/">Packt Publication</a>. It was written by a guy from Belgium (Maarten Balliauw). I’ve read his blog and I realized has not native English speaker. “If he can, why not to try myself?” I thought and written a short proposal for Packt. They were interested! I’ve worked on the proposal with the Acquisition Editor and I’ve shortly after that I’ve got the information that the book was “committed”. I was very, very happy until something went wrong at Packt (the went scared by a download stats of one of the tools I wanted to write about). The book was “uncommitted” and we didn’t sign the agreement. I don’t throw my hands up! I thought if they are interested probably someone else will be too. I’ve send view more proposals to other publishers and the Manning appeared. In the mean time Packt turned to be after all interested in me writing the book. The Acquisition Editor at Packt Publishing was a great guy. I’m sure it would be great to write a book for them but it was to late. Manning found me a co-writer <a href="http://www.craigberntson.com/">Craig Berntson</a>. Someone that speaks English a lot better than I and has a know how in continuous integration. The way the Manning deals with his authors seems very provisional and I’ve very glad to get this opportunity.</p>
<p>So be aware. The best Continuous Integration in .NET book comes sooner than you expected!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2009_08_14/next-big-thing-continuous-integration-book/en/feed/en/</wfw:commentRss>
		</item>
		<item>
		<title>Książka o Continuous Integration</title>
		<link>http://www.iprogrammable.com/2009_05_03/ksiazka-o-continuous-integration/pl/</link>
		<comments>http://www.iprogrammable.com/2009_05_03/ksiazka-o-continuous-integration/pl/#comments</comments>
		<pubDate>Sun, 03 May 2009 19:53:01 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[MSBuild]]></category>

		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[Books]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2009_05_03/ksiazka-o-continuous-integration/</guid>
		<description><![CDATA[Jednym z moich głównych zainteresowań zawodowych są procesy Continuous Integration. Jestem bardzo dumny z pełnego systemu ciągłej integracji, jaki uruchomiłem u mojego pracodawcy kilka lat temu. Od tego czasu regularnie w nim majstruję ulepszając to i owo. Niedawno pomyślałem, że lata mojej praktyki i doświadczeń z CI mogą przydać się innym. Po co ślęczeć nad [...]]]></description>
			<content:encoded><![CDATA[<p>Jednym z moich głównych zainteresowań zawodowych są procesy Continuous Integration. Jestem bardzo dumny z pełnego systemu ciągłej integracji, jaki uruchomiłem u mojego pracodawcy kilka lat temu. Od tego czasu regularnie w nim majstruję ulepszając to i owo. Niedawno pomyślałem, że lata mojej praktyki i doświadczeń z CI mogą przydać się innym. Po co ślęczeć nad problemami, które ja być może już rozwiązałem. Pomyślałem, że napiszę książkę. Poszukiwania wydawcy w Polsce sprowadzają się właściwie do jednego wydawnictwa - Helion. Mają oni <a href="http://helion.pl/autor/index-faq-sm.htm">bardzo ciekawą ofertę dla początkujących autorów</a>. Wystarczy dostarczyć im ankietę autorską, szczegółowy spis treści i jeden rozdział a wydawnictwo rozważy podpisanie umowy z autorem i wydanie książki. Postanowiłem spróbować sowich sił. Bardzo roboczy tytuł mojej książki to „.NET Continuous Integration za pół darmo”. Ankietę autorską Wam podaruję, ale spis treści książki, którą chciałem napisać wyglądał tak:</p>
<p><strong>1. Dlaczego continuous integration?</strong></p>
<p>a. Automatyzacja = oszczędność</p>
<p>b. Nie najnowszy wynalazek</p>
<p>c. Bądź zawsze gotowy</p>
<p><strong>2. Automatyzacja</strong></p>
<p>a. Kompilacja w jednym kroku</p>
<p>b. NAnt kontra MSBuildc. Automatyzacja procesu budowy za pomocą MSBuild</p>
<p><strong>3. System kontroli wersji</strong></p>
<p>a. Sine qua non</p>
<p>b. VSS kontra SVN</p>
<p>c. Subversion w akcji</p>
<p>d. Dobre rady w sprawie porządku w projekcie</p>
<p><strong>4. Serwer ciągłej integracji</strong></p>
<p>a. Bez niego ani rusz</p>
<p>b. TFS kontra CC.NET</p>
<p>c. CruiseControl.NET w akcji</p>
<p><strong>5. Testy jednostkowe</strong></p>
<p>a. Testy najbliższe materii</p>
<p>b. VSTS kontra NUnit</p>
<p>c. NUnit w akcji</p>
<p>d. Badanie pokrycia testami za pomocą NCover</p>
<p><strong>6. Kontrola procesu ciągłej integracji</strong></p>
<p>a. Wiedzieć, co w trawie piszczy</p>
<p>b. CCTray kontra Dashboard</p>
<p>c. Obaj w akcji</p>
<p>d. Integracja raportów (NUnit, NCover) z Dashboardem</p>
<p><strong>7. Testy akceptacyjne, integracyjne i systemowe</strong></p>
<p>a. Z tysiąca stóp</p>
<p>b. Web: Selenium</p>
<p>c. Windows: NUnitForms</p>
<p>d. Testy Fitnesse</p>
<p><strong>8. Analiza kodu</strong></p>
<p>a. Konwencje są ważne</p>
<p>b. Statyczna analiza kodu w FxCop i StyleCop</p>
<p><strong>9. Wersjonowanie</strong></p>
<p>a. Gdzie ja jestem?</p>
<p>b. Rozszerzanie MSBuild</p>
<p><strong>10. Dokumentacja</strong></p>
<p>a. Nie lubiane dziecko projektu</p>
<p>b. Generowanie dokumentacji w Sandcastle</p>
<p><strong>11. Dostawa</strong></p>
<p>a. Zawsze gotowy</p>
<p>b. Publikacja za pomocą ClickOnce</p>
<p>c. Tworzenie instalatora w Visual Studio i WiX</p>
<p>Przykładowy rozdział książki dla wydawnictwa Helion ze zrozumiałych względów, nie może być wstępem. Zacząłem, więc od rozdziału drugiego. Traktuje on o podstawach MSBuild utrzymując w perspektywie jego wykorzystanie w procesie ciągłej integracji.</p>
<p><strong><a href="http://www.kawalerowicz.net/Continuous_Integration_MSBuild.pdf">Oto kompletny rozdział drugi książki</a>.</strong></p>
<p>Tak przygotowaną zachętę do wydania przesłałem do wydawnictwa Helion. Niestety odpowiedź była odmowna:</p>
<p>„Dziękujemy za nadesłaną propozycję autorską, jednak bardzo mi przykro, ale nie zdecydujemy się na jej wydanie. Naszym zdaniem temat jest zbyt wąski, żeby mógł zapewnić satysfakcjonującą sprzedaż.“</p>
<p>Rozumiem i szanuję decyzję… ale naturalnie uważam ją za błędną ;-) To byłaby świetna książka. Jestem pewny, że sprzedałaby się w milionowym nakładzie i otrzymałbym za nią, co najmniej Pulitzera, a jeśli nie, to przynajmniej <a href="http://www.joltawards.com/">Nagrodę Jolt</a>.</p>
<p>Tak wiec, jeśli jesteś przedstawicielem wydawnictwa, które byłoby zainteresowane wydaniem tej perełki to jestem otwarty na wszelkie propozycje!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2009_05_03/ksiazka-o-continuous-integration/pl/feed/pl/</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>ClickOnce i Continuous Integration</title>
		<link>http://www.iprogrammable.com/2007_12_08/clickonce-i-continuous-integration/pl/</link>
		<comments>http://www.iprogrammable.com/2007_12_08/clickonce-i-continuous-integration/pl/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 15:24:59 +0000</pubDate>
		<dc:creator>Marcin Kawalerowicz</dc:creator>
		
		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[DotNet]]></category>

		<guid isPermaLink="false">http://www.iprogrammable.com/2007_12_08/clickonce-i-continuous-integration/pl/</guid>
		<description><![CDATA[Od wielu lat współpracowałem z wydawnictwem Software.  Mój pierwszy artykuł opublikowałem gdzieś około 2003 roku. Publikowałem w Software 2.0, i w Software Developers Journal. Pisałem artykuły do PHP Solutions i dodatków Extra. Współpraca układała się całkiem dobrze i wszystko trwałoby pewnie jeszcze latami gdyby nie to jedno „ale”.  Za mój pierwszy tekst otrzymałem [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span lang="PL">Od wielu lat współpracowałem z wydawnictwem Software.<span>  </span>Mój pierwszy artykuł opublikowałem gdzieś około 2003 roku. Publikowałem w Software 2.0, i w Software Developers Journal. Pisałem artykuły do PHP Solutions i dodatków Extra. Współpraca układała się całkiem dobrze i wszystko trwałoby pewnie jeszcze latami gdyby nie to jedno „ale”.<span>  </span>Za mój pierwszy tekst otrzymałem największe honorarium w historii mojej współpracy z Software Wydawnictwo. Później z tekstu na tekst otrzymywałem coraz mniej. Najpierw „stroną maszynopisu” było 3800 znaków wraz z kodami, później, 3800 znaków bez spacji, później i bez kodów. Do tego widełki za „nakład pracy redakcyjnej” / naturalnie o ile zastosowane to tylko na minus.<span>  </span>Nie wspominając już o tym, że ile wzniesie twoje ostateczne honorarium dowiadywałem się kilka tygodni po ukazaniu się numeru z moim tekstem z rachunku, który przygotowywała dla mnie redakcja.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="PL"><span> </span>Mój ostatni tekst na temat C# 3.0 był zdaniem redakcji wart około 10 piw w monachijskiej knajpie. Dobrze - pomyślałem sobie.<span>  </span>Horrendalnie drogie pismo, niski nakład i do tego słabiutkie honoraria. Równie dobrze mogę publikować teksty za darmo, z nieograniczonym nakładem, nie mając z tego nic – prócz satysfakcji, naturalnie. Prawda?</span></p>
<p class="MsoNormal"><strong><a href="http://www.kawalerowicz.net/CI_SlickOnce.pdf">Zapraszam do lektury.</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2007_12_08/clickonce-i-continuous-integration/pl/feed/pl/</wfw:commentRss>
		</item>
		<item>
		<title>Continuous Integration article in SDJ</title>
		<link>http://www.iprogrammable.com/2007_09_03/continuous-integration-article-in-sdj/en/</link>
		<comments>http://www.iprogrammable.com/2007_09_03/continuous-integration-article-in-sdj/en/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 17:24:59 +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/2007/09/03/continuous-integration-article-in-sdj/</guid>
		<description><![CDATA[I would like to invite all my polish speaking readers to online version of my article about continuous integration in .NET. It was published in July 2007 in Software Developers Journal. You can find it in the download section of SDJ web page. You can read there about:

setting up CI server with CruiseControl.NET
creating one click [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to invite all my polish speaking readers to online version of my article about continuous integration in .NET. It was published in July 2007 in <a href="http://www.sdjournal.org/">Software Developers Journal</a>. You can find it in the <a href="http://www.sdjournal.org/pl/sdj/download.html">download section of SDJ web page</a>. You can read there about:</p>
<ul>
<li>setting up CI server with CruiseControl.NET</li>
<li>creating one click build script with MSBuild</li>
<li>incorporating unit testing and code coverage into CI process</li>
<li>using WebDashboard and CCTray to control the process</li>
<li>introducing code analyze with FxCop</li>
<li>creating install file and deploying the project.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.iprogrammable.com/2007_09_03/continuous-integration-article-in-sdj/en/feed/en/</wfw:commentRss>
		</item>
	</channel>
</rss>
