<?xml version="1.0" encoding="UTF-8"?><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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>tools &#8211; Sanity Free Coding</title>
	<atom:link href="http://sanity-free.org/tag/tools/feed" rel="self" type="application/rss+xml" />
	<link>http://sanity-free.org</link>
	<description>Methods to the Madness</description>
	<lastBuildDate>Thu, 20 Nov 2025 04:31:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>http://sanity-free.org/wp-content/uploads/2025/10/sanity-free-512-150x150.jpg</url>
	<title>tools &#8211; Sanity Free Coding</title>
	<link>http://sanity-free.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Dependency Scanner (for .NET 1.1)</title>
		<link>http://sanity-free.org/dependency_scanner_for_dotnet_1_1.html</link>
		
		<dc:creator><![CDATA[steve]]></dc:creator>
		<pubDate>Wed, 22 Mar 2006 18:00:38 +0000</pubDate>
				<category><![CDATA[C# Articles]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://dev.sanity-free.org/?p=114</guid>

					<description><![CDATA[Download Project &#38; Source Code Here&#8217;s a little tool I wrote a while ago. Right now its only for .NET 1.1, but I&#8217;m working on a port for 2.0 (which should look a lot nicer). When I wrote this, I was dealing with assemblies that had very complex inner-dependencies. Some assemblies were private, others were [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="sf-downloads"><a href="/wp-content/uploads/2025/10/DependencyResolver.zip" data-type="link" data-id="http://dev.sanity-free.org/wp-content/uploads/2025/10/DependencyResolver.zip" target="_blank" rel="noreferrer noopener nofollow">Download Project &amp; Source Code</a></p>



<figure class="wp-block-image size-large"><img decoding="async" src="/wp-content/uploads/2025/10/dependency_scanner.png" alt=""/></figure>



<p>Here&#8217;s a little tool I wrote a while ago. Right now its only for .NET 1.1, but I&#8217;m working on a port for 2.0 (which should look a lot nicer).<br><br>When I wrote this, I was dealing with assemblies that had very complex inner-dependencies. Some assemblies were private, others were shared, and I ended up having to have a ton of ildasm.exe&#8217;s open to the assembly manifest to try to see which assembly had referenced which assembly and had to verify that the assembly version referenced was correct. On top of that I needed to verify that assemblies that were referenced&#8211;that had policy files&#8211;were being redirected to the correct versions.<br><br>Basically all this tool does, is load an assembly, display its version, and lists any referenced assemblies, their versions, and whether or not the reference version resolves to any other version. It doesn&#8217;t look like much, but its saved me a lot of time and head ache. It also has a copy / paste feature that can copy selected ListView data to the clipboard in a nice column formatted manner.<br><br>Here&#8217;s the main bulk of whats going on. Basically what I did, was to load the assembly file, then try to load another assembly based on the partial name from the assembly file that I just loaded. At first glance, it looks as if I&#8217;m creating 2 identical assembly objects. The difference is, that if one assembly was version 1.1.2 and there was a policy file for version 1.1.2 to redirect to version 1.2.3, the second assembly load would load version 1.2.3 instead of version 1.1.2. That info would be displayed in the top line of the assembly entry<br></p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#000000;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>private void ResolveAssemblyImports(string file) {
    try {
        Assembly asm = Assembly.LoadFile(file);
        Assembly d = Assembly.LoadWithPartialName(asm.FullName);
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #0000FF">private</span><span style="color: #000000"> </span><span style="color: #0000FF">void</span><span style="color: #000000"> </span><span style="color: #795E26">ResolveAssemblyImports</span><span style="color: #000000">(</span><span style="color: #0000FF">string</span><span style="color: #000000"> </span><span style="color: #001080">file</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">    </span><span style="color: #AF00DB">try</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #267F99">Assembly</span><span style="color: #000000"> </span><span style="color: #001080">asm</span><span style="color: #000000"> = </span><span style="color: #001080">Assembly</span><span style="color: #000000">.</span><span style="color: #795E26">LoadFile</span><span style="color: #000000">(</span><span style="color: #001080">file</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #267F99">Assembly</span><span style="color: #000000"> </span><span style="color: #001080">d</span><span style="color: #000000"> = </span><span style="color: #001080">Assembly</span><span style="color: #000000">.</span><span style="color: #795E26">LoadWithPartialName</span><span style="color: #000000">(</span><span style="color: #001080">asm</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">);</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#FFFFFF;color:#0d0d0d;font-size:12px;line-height:1;position:relative">C#</span></div>



<p>Then I matched the two assemblies version numbers to see if they matched</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#000000;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>        string ver = "", re = "";
        bool nill = d == null;
        if(!nill) {
            re = _r.Match(d.FullName).Groups&#91;"version"&#93;.Value;
        } else {
            re = "NULL";
        }
        ver = _r.Match(asm.FullName).Groups&#91;"version"&#93;.Value;
        bool r_1 = false;
        if(ver != re &amp;&amp; re != "NULL") {
            Version v_1 = new Version(ver);
            Version v_2 = new Version(re);
            if(v_2 >= v_1) r_1 = true;
        }
        AddItem(asm.GetName().Name, "----", ver, re, "True", nill ? "Failed" : (r_1 ? "True" : "False"));
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">string</span><span style="color: #000000"> </span><span style="color: #001080">ver</span><span style="color: #000000"> = </span><span style="color: #A31515">&quot;&quot;</span><span style="color: #000000">, </span><span style="color: #001080">re</span><span style="color: #000000"> = </span><span style="color: #A31515">&quot;&quot;</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">bool</span><span style="color: #000000"> </span><span style="color: #001080">nill</span><span style="color: #000000"> = </span><span style="color: #001080">d</span><span style="color: #000000"> == </span><span style="color: #0000FF">null</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #AF00DB">if</span><span style="color: #000000">(!</span><span style="color: #001080">nill</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">re</span><span style="color: #000000"> = </span><span style="color: #001080">_r</span><span style="color: #000000">.</span><span style="color: #795E26">Match</span><span style="color: #000000">(</span><span style="color: #001080">d</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">).</span><span style="color: #001080">Groups</span><span style="color: #000000">&#91;</span><span style="color: #A31515">&quot;version&quot;</span><span style="color: #000000">&#93;.</span><span style="color: #001080">Value</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        } </span><span style="color: #AF00DB">else</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">re</span><span style="color: #000000"> = </span><span style="color: #A31515">&quot;NULL&quot;</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #001080">ver</span><span style="color: #000000"> = </span><span style="color: #001080">_r</span><span style="color: #000000">.</span><span style="color: #795E26">Match</span><span style="color: #000000">(</span><span style="color: #001080">asm</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">).</span><span style="color: #001080">Groups</span><span style="color: #000000">&#91;</span><span style="color: #A31515">&quot;version&quot;</span><span style="color: #000000">&#93;.</span><span style="color: #001080">Value</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">bool</span><span style="color: #000000"> </span><span style="color: #001080">r_1</span><span style="color: #000000"> = </span><span style="color: #0000FF">false</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #AF00DB">if</span><span style="color: #000000">(</span><span style="color: #001080">ver</span><span style="color: #000000"> != </span><span style="color: #001080">re</span><span style="color: #000000"> &amp;&amp; </span><span style="color: #001080">re</span><span style="color: #000000"> != </span><span style="color: #A31515">&quot;NULL&quot;</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">Version</span><span style="color: #000000"> </span><span style="color: #001080">v_1</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Version</span><span style="color: #000000">(</span><span style="color: #001080">ver</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">Version</span><span style="color: #000000"> </span><span style="color: #001080">v_2</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Version</span><span style="color: #000000">(</span><span style="color: #001080">re</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #AF00DB">if</span><span style="color: #000000">(</span><span style="color: #001080">v_2</span><span style="color: #000000"> &gt;= </span><span style="color: #001080">v_1</span><span style="color: #000000">) </span><span style="color: #001080">r_1</span><span style="color: #000000"> = </span><span style="color: #0000FF">true</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #795E26">AddItem</span><span style="color: #000000">(</span><span style="color: #001080">asm</span><span style="color: #000000">.</span><span style="color: #795E26">GetName</span><span style="color: #000000">().</span><span style="color: #001080">Name</span><span style="color: #000000">, </span><span style="color: #A31515">&quot;----&quot;</span><span style="color: #000000">, </span><span style="color: #001080">ver</span><span style="color: #000000">, </span><span style="color: #001080">re</span><span style="color: #000000">, </span><span style="color: #A31515">&quot;True&quot;</span><span style="color: #000000">, </span><span style="color: #001080">nill</span><span style="color: #000000"> ? </span><span style="color: #A31515">&quot;Failed&quot;</span><span style="color: #000000"> : (</span><span style="color: #001080">r_1</span><span style="color: #000000"> ? </span><span style="color: #A31515">&quot;True&quot;</span><span style="color: #000000"> : </span><span style="color: #A31515">&quot;False&quot;</span><span style="color: #000000">));</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#FFFFFF;color:#0d0d0d;font-size:12px;line-height:1;position:relative">C#</span></div>



<p>Then I iterate through the assembly&#8217;s referenced assemblies and try to do the same thing (match version numbers &amp; see if they resolve to the same version)</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(0, 0, 0, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#000000;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>        foreach(AssemblyName asmName in asm.GetReferencedAssemblies()) {
            string v1 = _r.Match(asmName.FullName).Groups&#91;"version"&#93;.Value,
                v2 = v1;
            bool exist = false, res = false;
            Assembly dep;
            try {
                dep = Assembly.LoadWithPartialName(asmName.FullName);
                if(dep != null) {
                    string temp = _r.Match(dep.FullName).Groups&#91;"version"&#93;.Value;
                    exist = true;
                    if(v2 != temp) {
                        Version v = new Version(v2);
                        Version t = new Version(temp);
                        if(t >= v) res = true;
                    }
                }
            } finally {
                AddItem("    +----", asmName.Name, v1, v2, exist.ToString(), res.ToString());
            }
        }
    } catch {
    }
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #000000">        </span><span style="color: #AF00DB">foreach</span><span style="color: #000000">(</span><span style="color: #267F99">AssemblyName</span><span style="color: #000000"> </span><span style="color: #001080">asmName</span><span style="color: #000000"> </span><span style="color: #AF00DB">in</span><span style="color: #000000"> </span><span style="color: #001080">asm</span><span style="color: #000000">.</span><span style="color: #795E26">GetReferencedAssemblies</span><span style="color: #000000">()) {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">string</span><span style="color: #000000"> </span><span style="color: #001080">v1</span><span style="color: #000000"> = </span><span style="color: #001080">_r</span><span style="color: #000000">.</span><span style="color: #795E26">Match</span><span style="color: #000000">(</span><span style="color: #001080">asmName</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">).</span><span style="color: #001080">Groups</span><span style="color: #000000">&#91;</span><span style="color: #A31515">&quot;version&quot;</span><span style="color: #000000">&#93;.</span><span style="color: #001080">Value</span><span style="color: #000000">,</span></span>
<span class="line"><span style="color: #000000">                </span><span style="color: #001080">v2</span><span style="color: #000000"> = </span><span style="color: #001080">v1</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">bool</span><span style="color: #000000"> </span><span style="color: #001080">exist</span><span style="color: #000000"> = </span><span style="color: #0000FF">false</span><span style="color: #000000">, </span><span style="color: #001080">res</span><span style="color: #000000"> = </span><span style="color: #0000FF">false</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">Assembly</span><span style="color: #000000"> </span><span style="color: #001080">dep</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #AF00DB">try</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">                </span><span style="color: #001080">dep</span><span style="color: #000000"> = </span><span style="color: #001080">Assembly</span><span style="color: #000000">.</span><span style="color: #795E26">LoadWithPartialName</span><span style="color: #000000">(</span><span style="color: #001080">asmName</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">                </span><span style="color: #AF00DB">if</span><span style="color: #000000">(</span><span style="color: #001080">dep</span><span style="color: #000000"> != </span><span style="color: #0000FF">null</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">                    </span><span style="color: #0000FF">string</span><span style="color: #000000"> </span><span style="color: #001080">temp</span><span style="color: #000000"> = </span><span style="color: #001080">_r</span><span style="color: #000000">.</span><span style="color: #795E26">Match</span><span style="color: #000000">(</span><span style="color: #001080">dep</span><span style="color: #000000">.</span><span style="color: #001080">FullName</span><span style="color: #000000">).</span><span style="color: #001080">Groups</span><span style="color: #000000">&#91;</span><span style="color: #A31515">&quot;version&quot;</span><span style="color: #000000">&#93;.</span><span style="color: #001080">Value</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">                    </span><span style="color: #001080">exist</span><span style="color: #000000"> = </span><span style="color: #0000FF">true</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">                    </span><span style="color: #AF00DB">if</span><span style="color: #000000">(</span><span style="color: #001080">v2</span><span style="color: #000000"> != </span><span style="color: #001080">temp</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">                        </span><span style="color: #267F99">Version</span><span style="color: #000000"> </span><span style="color: #001080">v</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Version</span><span style="color: #000000">(</span><span style="color: #001080">v2</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">                        </span><span style="color: #267F99">Version</span><span style="color: #000000"> </span><span style="color: #001080">t</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Version</span><span style="color: #000000">(</span><span style="color: #001080">temp</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">                        </span><span style="color: #AF00DB">if</span><span style="color: #000000">(</span><span style="color: #001080">t</span><span style="color: #000000"> &gt;= </span><span style="color: #001080">v</span><span style="color: #000000">) </span><span style="color: #001080">res</span><span style="color: #000000"> = </span><span style="color: #0000FF">true</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">                    }</span></span>
<span class="line"><span style="color: #000000">                }</span></span>
<span class="line"><span style="color: #000000">            } </span><span style="color: #AF00DB">finally</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">                </span><span style="color: #795E26">AddItem</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;    +----&quot;</span><span style="color: #000000">, </span><span style="color: #001080">asmName</span><span style="color: #000000">.</span><span style="color: #001080">Name</span><span style="color: #000000">, </span><span style="color: #001080">v1</span><span style="color: #000000">, </span><span style="color: #001080">v2</span><span style="color: #000000">, </span><span style="color: #001080">exist</span><span style="color: #000000">.</span><span style="color: #795E26">ToString</span><span style="color: #000000">(), </span><span style="color: #001080">res</span><span style="color: #000000">.</span><span style="color: #795E26">ToString</span><span style="color: #000000">());</span></span>
<span class="line"><span style="color: #000000">            }</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"><span style="color: #000000">    } </span><span style="color: #AF00DB">catch</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">    }</span></span>
<span class="line"><span style="color: #000000">}</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#FFFFFF;color:#0d0d0d;font-size:12px;line-height:1;position:relative">C#</span></div>



<p>Then I finally print out the results of my findings to the ListView.<br><br><br>I had forgotten about this app until today when I couldn&#8217;t understand why I kept getting an error for a method that had been updated in the assembly I was referencing. I pulled this tool out and saw that it indeed referenced the correct assembly but because another assembly being used referenced an older version of that assembly, the local copy was using the newer version but the older version was in the GAC so my code was using the older assembly that didn&#8217;t have the current code that I needed (confused&#8230; I am and I was there).<br><br>Anyway, <a href="/wp-content/uploads/2025/10/DependencyResolver.zip" target="_blank" rel="noreferrer noopener nofollow">here&#8217;s the project / source code</a> for the app.<br><br><strong>Update 7/16/2009</strong> I&#8217;ve converted this app over to .NET 3.5 and complied app binaries that can be downloaded <a href="/wp-content/uploads/2025/10/DependencyResolver-binary-.net3_.5.zip" target="_blank" rel="noreferrer noopener nofollow">here</a></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
