<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>DuplicateFinder</title><link>http://www.codeplex.com/DuplicateFinder/Project/ProjectRss.aspx</link><description>Duplicate Finder is a simple utility to look though files and find identical lines, which indicates duplicate code or cut-and-paste coding. It is written in C&amp;#35; using some .net 2.0 features. It is a...</description><item><title>Created Issue: Redirect output</title><link>http://www.codeplex.com/DuplicateFinder/WorkItem/View.aspx?WorkItemId=11203</link><description>Another nice feature to have is the ability to redirect the output to a more readable file format.&lt;br /&gt;</description><author>flavor_18</author><pubDate>Wed, 10 Sep 2008 15:16:27 GMT</pubDate><guid isPermaLink="false">Created Issue: Redirect output 20080910031627P</guid></item><item><title>Created Issue: Ability to restrict by file suffix</title><link>http://www.codeplex.com/DuplicateFinder/WorkItem/View.aspx?WorkItemId=11202</link><description>It would be nice to be able to restrict the search by suffix as well.&lt;br /&gt;&lt;br /&gt;For example&amp;#58; -s &amp;#34;.designer.cs&amp;#34;&lt;br /&gt;</description><author>flavor_18</author><pubDate>Wed, 10 Sep 2008 15:13:50 GMT</pubDate><guid isPermaLink="false">Created Issue: Ability to restrict by file suffix 20080910031350P</guid></item><item><title>Created Issue: Performance - Dupfinder is slow on lots of files</title><link>http://www.codeplex.com/DuplicateFinder/WorkItem/View.aspx?WorkItemId=10948</link><description>The program takes a long time to run for large numbers of input files. The increase in run time is more than linear, though I haven&amp;#39;t managed to characterise it as O&amp;#40;N&amp;#94;2&amp;#41; or what.&lt;br /&gt;I don&amp;#39;t have any ideas for speedups on large input datasets.&lt;br /&gt;A workaround would be to partition the checks performed - compare data layer code only to other datalayer code, Ui to Ui, etc.&lt;br /&gt;</description><author>AnthonySteele</author><pubDate>Fri, 08 Aug 2008 10:10:13 GMT</pubDate><guid isPermaLink="false">Created Issue: Performance - Dupfinder is slow on lots of files 20080808101013A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=Home&amp;version=20</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Duplicate Finder is a simple utility to look though files and find identical lines, which indicates duplicate code or cut-and-paste coding. It is written in C&amp;#35; using some .net 2.0 features. It is aimed at detecting duplicate statements in source code, but  uses simple text comparison techniques that should work on other kinds of text files.&lt;br /&gt;&lt;br /&gt;I wrote this program for people like myself&amp;#58; C&amp;#35; programmers with an interest in code quality and automated tools to find code quality problems. However you may find other uses for it.&lt;br /&gt;&lt;br /&gt;The source code program consists of&amp;#58;&lt;br /&gt;DuplicateFinderLib - the engine for finding duplicates&lt;br /&gt;DuplicateFinder.exe - the command-line tool that uses the engine&lt;br /&gt;DuplicateFinder.Tasks - the MSBuild task for the engine. This allows integration with C&amp;#35; automated builds.&lt;br /&gt;And unit test cases
&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/DuplicateFinder/Release/ProjectReleases.aspx?ReleaseId=15241"&gt;DuplicateFinder 1.4&lt;/a&gt; is out.&lt;br /&gt; &lt;br /&gt;Usage of the command-line tool is as follows, eg:&lt;br /&gt;&lt;pre&gt;
&amp;gt;DupFinder.exe -t4 test5*.txt
Processing in C:\Code\DuplicateFinder\TestData
2 files read
Duplicate of length 5 at:
 Line 2-6 in C:\Code\DuplicateFinder\TestData\Test5Lines1.txt
 Line 2-6 in C:\Code\DuplicateFinder\TestData\Test5Lines2.txt
1 duplicate found
&lt;/pre&gt; &lt;br /&gt; &lt;br /&gt;A more realistic example for C# code, looking through all files in the source tree, for duplicates of 9 lines or more, excluding the generated files called &lt;i&gt;AssemblyInfo.cs:&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;
&amp;gt; C:\Code\DuplicateFinder&amp;gt;DupFinder.exe -t9 -r -eAssemblyInfo.cs *.cs
 
Processing in C:\Code\DuplicateFinder
11 files read
Duplicate of length 11 at:
 Line 1-11 in C:\Code\DuplicateFinder\TestLibrary\TestAllFiles.cs
 Line 1-11 in C:\Code\DuplicateFinder\TestLibrary\TestFiles.cs
 Line 1-11 in C:\Code\DuplicateFinder\TestLibrary\TestProgramFile.cs
1 duplicate found
&lt;/pre&gt; &lt;br /&gt;The duplicate finder has found that the test cases have the same using and namespace lines at the top.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=Commandline%20arguments&amp;amp;referringTitle=Home"&gt;Duplicate Finder Commandline arguments explained&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=MSBuild%20Task&amp;amp;referringTitle=Home"&gt;MSBuild Task&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>AnthonySteele</author><pubDate>Sat, 12 Jul 2008 14:25:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080712022503P</guid></item><item><title>RELEASED: DuplicateFinder 1.4 (Jul 12, 2008)</title><link>http://www.codeplex.com/DuplicateFinder/Release/ProjectReleases.aspx?ReleaseId=15241</link><description>&lt;div&gt;
No Major changes from version 1.3&lt;br&gt;There is 1 bugfix in the MSBuild tasks&lt;br&gt;And several code cleanups as prompled by the tools Fxcop, StyleCop and resharper.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Sat, 12 Jul 2008 14:23:59 GMT</pubDate><guid isPermaLink="false">RELEASED: DuplicateFinder 1.4 (Jul 12, 2008) 20080712022359P</guid></item><item><title>UPDATED RELEASE: DuplicateFinder 1.4 (Jul 12, 2008)</title><link>http://www.codeplex.com/DuplicateFinder/Release/ProjectReleases.aspx?ReleaseId=15241</link><description>&lt;div&gt;
No Major changes from version 1.3&lt;br&gt;There is 1 bugfix in the MSBuild tasks&lt;br&gt;And several code cleanups as prompled by the tools Fxcop, StyleCop and resharper.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Sat, 12 Jul 2008 14:23:59 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: DuplicateFinder 1.4 (Jul 12, 2008) 20080712022359P</guid></item><item><title>Source code checked in, #19468</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>Ready fro V 1.4</description><author>AnthonySteele</author><pubDate>Sat, 12 Jul 2008 14:17:25 GMT</pubDate><guid isPermaLink="false">Source code checked in, #19468 20080712021725P</guid></item><item><title>Source code checked in, #19467</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>ready for v 1.4</description><author>AnthonySteele</author><pubDate>Sat, 12 Jul 2008 14:17:09 GMT</pubDate><guid isPermaLink="false">Source code checked in, #19467 20080712021709P</guid></item><item><title>Source code checked in, #18971</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>version numbers at 1.4</description><author>AnthonySteele</author><pubDate>Sun, 06 Jul 2008 19:33:14 GMT</pubDate><guid isPermaLink="false">Source code checked in, #18971 20080706073314P</guid></item><item><title>Source code checked in, #18709</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>Refactorings as recommended by resharper</description><author>AnthonySteele</author><pubDate>Wed, 18 Jun 2008 11:05:34 GMT</pubDate><guid isPermaLink="false">Source code checked in, #18709 20080618110534A</guid></item><item><title>Source code checked in, #18639</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>fixed some warnings from fxcop</description><author>AnthonySteele</author><pubDate>Fri, 13 Jun 2008 22:14:06 GMT</pubDate><guid isPermaLink="false">Source code checked in, #18639 20080613101406P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>StyleCop compliance is now complete</description><author>AnthonySteele</author><pubDate>Mon, 02 Jun 2008 14:30:16 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080602023016P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>More styleCop compliance.</description><author>AnthonySteele</author><pubDate>Mon, 02 Jun 2008 09:55:47 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080602095547A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>more stylecop compliance work</description><author>AnthonySteele</author><pubDate>Sun, 01 Jun 2008 18:30:14 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080601063014P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>ms build task - syle cop compliance</description><author>AnthonySteele</author><pubDate>Sat, 31 May 2008 11:13:40 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080531111340A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description>stylecop compliance in main dupfinder engine lib</description><author>AnthonySteele</author><pubDate>Sat, 31 May 2008 10:49:55 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080531104955A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/DuplicateFinder/SourceControl/ListDownloadableCommits.aspx</link><description></description><author>AnthonySteele</author><pubDate>Sun, 04 May 2008 15:51:26 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080504035126P</guid></item><item><title>UPDATED WIKI: MSBuild Task</title><link>http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=MSBuild Task&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
In order to use the MSBuild tasks for DuplicateFinder, you will need the libraries DuplicateFinderLib.dll and DuplicateFinder.Tasks.dll.&lt;br /&gt;The simple way to use them is to place them in your &lt;i&gt;$(MSBuildExtensionsPath)&lt;/i&gt;, which is typically &lt;i&gt;C:\Program Files\MSBuild&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Then you can use it in MSBuild scripts, as in this simple example:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles Include=&amp;quot;..\..\TestData\*.txt&amp;quot;/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
 
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Parameters to the DuplicateFinder  task are as follows:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Files&lt;/b&gt;: The files to inspect.  Required. Note that the ExcludedFiles option is not present, since an MSBuild file group can both include and exclude files.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;DuplicateThreshold&lt;/b&gt;: As per the &lt;a href="http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=commandline%20arguments&amp;amp;referringTitle=MSBuild%20Task"&gt;commandline arguments&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FocusFile&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FirstLineMinWidth&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;ExcludedLinePrefixes&lt;/b&gt;: as per the commandline arguments. Multiple prefixes can be specified on multiple lines inside the quotes as per the example below. These lines are trimmed for leading and trailing white space so indentation is unimportant.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError&lt;/b&gt;: The task will fail if this number or more duplicates are found.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;LengthThresholdForError&lt;/b&gt;: The task will fail if this length or longer duplicates are found.&lt;br /&gt; &lt;br /&gt;CountThresholdForError and LengthThresholdForError work together. e.g. if CountThresholdForError =3 and LengthThresholdForError  = 10, the task will fail on three or more duplicates of length 10 lines or more, but will not fail on two duplicates of length 12, or on 4 duplicates of length 9.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError2&lt;/b&gt; and &lt;b&gt;LengthThresholdForError2&lt;/b&gt; are optional, and set a second threshold for error. Likewise  &lt;b&gt;CountThresholdForError3&lt;/b&gt; and &lt;b&gt;LengthThresholdForError3&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;
		CountThresholdForError=&amp;quot;10&amp;quot;
		LengthThresholdForError=&amp;quot;6&amp;quot;
		CountThresholdForError2=&amp;quot;1&amp;quot;
		LengthThresholdForError2=&amp;quot;16&amp;quot;
&lt;/pre&gt; &lt;br /&gt;This will fail the build on 10 more more duplicates of length 6 or more, or on any duplicates of length 16 or more.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Here is a more complex example, which uses all the optional parameters:&lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles 
	  Include=&amp;quot;..\..\**\*.cs&amp;quot;  
	  Exclude=&amp;quot;..\..\**\AssemblyInfo.cs&amp;quot;  
	/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder 
      Files=&amp;quot;@(TestFiles)&amp;quot;
      DuplicateThreshold=&amp;quot;3&amp;quot;
      FocusFile=&amp;quot;Text1.txt&amp;quot;
      FirstLineMinWidth=&amp;quot;5&amp;quot;
      CountThresholdForError=&amp;quot;3&amp;quot;
      LengthThresholdForError=&amp;quot;10&amp;quot;
      CountThresholdForError2=&amp;quot;2&amp;quot;
      LengthThresholdForError2=&amp;quot;20&amp;quot;
      CountThresholdForError3=&amp;quot;1&amp;quot;
      LengthThresholdForError3=&amp;quot;30&amp;quot;	
      ExcludedLinePrefixes=&amp;quot;using&amp;quot;
     /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Here is an example with multiple line prefix exclusions specified on multiple lines:&lt;br /&gt;&lt;pre&gt;
&amp;lt;DuplicateFinder 
    ExcludedLinePrefixes=&amp;quot;
    using
    return
    private&amp;quot; 
    Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>AnthonySteele</author><pubDate>Sun, 04 May 2008 15:48:09 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MSBuild Task 20080504034809P</guid></item><item><title>UPDATED WIKI: MSBuild Task</title><link>http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=MSBuild Task&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
In order to use the MSBuild tasks for DuplicateFinder, you will need the libraries DuplicateFinderLib.dll and DuplicateFinder.Tasks.dll.&lt;br /&gt;The simple way to use them is to place them in your &lt;i&gt;$(MSBuildExtensionsPath)&lt;/i&gt;, which is typically &lt;i&gt;C:\Program Files\MSBuild&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Then you can use it in MSBuild scripts, as in this simple example:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles Include=&amp;quot;..\..\TestData\*.txt&amp;quot;/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
 
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Parameters to the DuplicateFinder  task are as follows:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Files&lt;/b&gt;: The files to inspect.  Required. Note that the ExcludedFiles option is not present, since an MSBuild file group can both include and exclude files.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;DuplicateThreshold&lt;/b&gt;: As per the &lt;a href="http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=commandline%20arguments&amp;amp;referringTitle=MSBuild%20Task"&gt;commandline arguments&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FocusFile&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FirstLineMinWidth&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;ExcludedLinePrefixes&lt;/b&gt;: as per the commandline arguments. Multiple prefixes can be specified on multiple lines inside the quotes as per the example below. These lines are trimmed for leading and trailing white space so indentation is unimportant.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError&lt;/b&gt;: The task will fail if this number or more duplicates are found.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;LengthThresholdForError&lt;/b&gt;: The task will fail if this length or longer duplicates are found.&lt;br /&gt; &lt;br /&gt;CountThresholdForError and LengthThresholdForError work together. e.g. if CountThresholdForError =3 and LengthThresholdForError  = 10, the task will fail on three or more duplicates of length 10 lines or more, but will not fail on two duplicates of length 12, or on 4 duplicates of length 9.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError2&lt;/b&gt; and &lt;b&gt;LengthThresholdForError2&lt;/b&gt; are optional, and set a second threshold for error. Likewise  &lt;b&gt;CountThresholdForError3&lt;/b&gt; and &lt;b&gt;LengthThresholdForError3&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;
		CountThresholdForError=&amp;quot;10&amp;quot;
		LengthThresholdForError=&amp;quot;6&amp;quot;
		CountThresholdForError2=&amp;quot;1&amp;quot;
		LengthThresholdForError2=&amp;quot;16&amp;quot;
&lt;/pre&gt; &lt;br /&gt;This will fail the build on 10 more more duplicates of length 6 or more, or on any duplicates of length 16 or more.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Here is a more complex example, which uses all the optional parameters:&lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles 
	  Include=&amp;quot;..\..\**\*.cs&amp;quot;  
	  Exclude=&amp;quot;..\..\**\AssemblyInfo.cs&amp;quot;  
	/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder 
      Files=&amp;quot;@(TestFiles)&amp;quot;
      DuplicateThreshold=&amp;quot;3&amp;quot;
      FocusFile=&amp;quot;Text1.txt&amp;quot;
      FirstLineMinWidth=&amp;quot;5&amp;quot;
      CountThresholdForError=&amp;quot;3&amp;quot;
      LengthThresholdForError=&amp;quot;10&amp;quot;	
      ExcludedLinePrefixes=&amp;quot;using&amp;quot;
     /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Here is an example with multiple line prefix exclusions specified on multiple lines:&lt;br /&gt;&lt;pre&gt;
&amp;lt;DuplicateFinder 
    ExcludedLinePrefixes=&amp;quot;
    using
    return
    private&amp;quot; 
    Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>AnthonySteele</author><pubDate>Sun, 04 May 2008 15:46:16 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MSBuild Task 20080504034616P</guid></item><item><title>UPDATED WIKI: MSBuild Task</title><link>http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=MSBuild Task&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
In order to use the MSBuild tasks for DuplicateFinder, you will need the libraries DuplicateFinderLib.dll and DuplicateFinder.Tasks.dll.&lt;br /&gt;The simple way to use them is to place them in your &lt;i&gt;$(MSBuildExtensionsPath)&lt;/i&gt;, which is typically &lt;i&gt;C:\Program Files\MSBuild&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Then you can use it in MSBuild scripts, as in this simple example:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles Include=&amp;quot;..\..\TestData\*.txt&amp;quot;/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
 
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Parameters to the DuplicateFinder  task are as follows:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Files&lt;/b&gt;: The files to inspect.  Required. Note that the ExcludedFiles option is not present, since an MSBuild file group can both include and exclude files.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;DuplicateThreshold&lt;/b&gt;: As per the &lt;a href="http://www.codeplex.com/DuplicateFinder/Wiki/View.aspx?title=commandline%20arguments&amp;amp;referringTitle=MSBuild%20Task"&gt;commandline arguments&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FocusFile&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;FirstLineMinWidth&lt;/b&gt;: As per the command line arguments. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;ExcludedLinePrefixes&lt;/b&gt;: as per the commandline arguments. Multiple prefixes can be specified on multiple lines inside the quotes as per the example below. These lines are trimmed for leading and trailing white space so indentation is unimportant.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError&lt;/b&gt;: The task will fail if this number or more duplicates are found.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;LengthThresholdForError&lt;/b&gt;: The task will fail if this length or longer duplicates are found.&lt;br /&gt; &lt;br /&gt;CountThresholdForError and LengthThresholdForError work together. e.g. if CountThresholdForError =3 and LengthThresholdForError  = 10, the task will fail on three or more duplicates of length 10 lines or more, but will not fail on two duplicates of length 12, or on 4 duplicates of length 9.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CountThresholdForError2&lt;/b&gt; and &lt;b&gt;LengthThresholdForError2&lt;/b&gt; are optional, and set a second threshold for error. Likewise  &lt;b&gt;CountThresholdForError3&lt;/b&gt; and &lt;b&gt;LengthThresholdForError3&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;
		CountThresholdForError=&amp;quot;10&amp;quot;
		LengthThresholdForError=&amp;quot;6&amp;quot;
		CountThresholdForError2=&amp;quot;1&amp;quot;
		LengthThresholdForError2=&amp;quot;16&amp;quot;
&lt;/pre&gt; &lt;br /&gt;This will fail the build on 10 more more duplicates of length 6 or more. or on any duplicates of length 16 or more.&lt;br /&gt;Here is a more complex example, which uses all the optional parameters:&lt;br /&gt;&lt;pre&gt;
&amp;lt;Project DefaultTargets=&amp;quot;RunTest&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;
    
  &amp;lt;UsingTask TaskName=&amp;quot;DuplicateFinder&amp;quot; 
	AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\DuplicateFinder.Tasks.dll&amp;quot; /&amp;gt;
 
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;TestFiles 
	  Include=&amp;quot;..\..\**\*.cs&amp;quot;  
	  Exclude=&amp;quot;..\..\**\AssemblyInfo.cs&amp;quot;  
	/&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;Target Name=&amp;quot;RunTest&amp;quot;&amp;gt;
    &amp;lt;DuplicateFinder 
      Files=&amp;quot;@(TestFiles)&amp;quot;
      DuplicateThreshold=&amp;quot;3&amp;quot;
      FocusFile=&amp;quot;Text1.txt&amp;quot;
      FirstLineMinWidth=&amp;quot;5&amp;quot;
      CountThresholdForError=&amp;quot;3&amp;quot;
      LengthThresholdForError=&amp;quot;10&amp;quot;	
      ExcludedLinePrefixes=&amp;quot;using&amp;quot;
     /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Here is an example with multiple line prefix exclusions specified on multiple lines:&lt;br /&gt;&lt;pre&gt;
&amp;lt;DuplicateFinder 
    ExcludedLinePrefixes=&amp;quot;
    using
    return
    private&amp;quot; 
    Files=&amp;quot;@(TestFiles)&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>AnthonySteele</author><pubDate>Sun, 04 May 2008 15:44:55 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MSBuild Task 20080504034455P</guid></item></channel></rss>