<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7531015724450253542</id><updated>2011-11-27T15:19:39.186-08:00</updated><category term='vb.net'/><title type='text'>Very Busy Developer Notes</title><subtitle type='html'>odds and ends for programmers</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6765632854933303908</id><published>2010-09-01T21:14:00.000-07:00</published><updated>2010-09-01T21:16:05.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vb.net'/><title type='text'>Sorting sub-directories using IComparer in Visual Basic .NET</title><content type='html'>First we create an IComparer class:&lt;br /&gt;&lt;br /&gt;Imports System.IO&lt;br /&gt;&lt;br /&gt;Public Class DirectoryCompare&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Implements IComparer&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Overridable Overloads Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objX As DirectoryInfo = CType(x, DirectoryInfo)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objY As DirectoryInfo = CType(y, DirectoryInfo)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return objX.Name.CompareTo(objY.Name)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;And some code showing how to use it:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dArray() = New DirectoryInfo("C:\\Results").GetDirectories&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not dArray Is Nothing Then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dc As New DirectoryCompare()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dirs As ArrayList = New ArrayList(dArray)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirs.Sort(dc)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim lastDirPath as String = CType(dirs(dArray.Length - 1), DirectoryInfo).FullName&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'step through&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each dir As DirectoryInfo In dArray&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'step backwards&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For idir As Integer = dArray.Length - 1 To 0 Step -1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dir As DirectoryInfo = CType(dirs(idir), DirectoryInfo)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6765632854933303908?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6765632854933303908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6765632854933303908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6765632854933303908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6765632854933303908'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/09/sorting-sub-directories-using-icomparer.html' title='Sorting sub-directories using IComparer in Visual Basic .NET'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-5703643407857018598</id><published>2010-08-26T22:19:00.000-07:00</published><updated>2010-08-26T22:19:47.009-07:00</updated><title type='text'>Table Adapters invalid and cannot be generated after altering ODBC Firebird database</title><content type='html'>I may have generated a unique cause for this error, but it's a scary moment when all your ODBC table adapter queries disappear so I'll document the experience.&lt;br /&gt;&lt;br /&gt;This Visual Basic.Net (2008) project started out with an Access database for convenience, and I prefer mixed case table and field names for legibility.&lt;br /&gt;&lt;br /&gt;About 10 days ago I switched to a Firebird database, and it was pretty cool that the table adapters worked with Firebird after minor edits (e.g. remove the back-quotes on field names, handle missing native boolean type in Firebird)&lt;br /&gt;&lt;br /&gt;But, today after adding some columns in the Firebird database all my table adapters disappeared. The error is briefly summarized as "Failed to generate code. No mapping exists from DbType Object to a known OdbcType" The IDE showed "unknown type" critical errors on every reference in code.&lt;br /&gt;&lt;br /&gt;This error would occur even though I could hit Execute Query in the Table Adapter designer and see valid data appear.&lt;br /&gt;&lt;br /&gt;After some thrashing and a restore of all the relevant Dataset files from backup I figured out the error was rooted in case-sensitivity. One of the table adapters could no longer reference it's underlying table, and that meant the code for all the table adapters in the class could not be generated. Interestingly, in dataset design view the obviously broken adapter was *not* on the table with the new columns.&lt;br /&gt;&lt;br /&gt;There appeared to be problems in the &amp;lt;Mappings&amp;gt; for the  newly altered table. I saw both mixed-case to mixed-case and upper-case  to upper-case mappings, but no mixed-case to upper-case mappings. In addition, the column types were declared differently in mixed case from upper case, probably because they were based on Access when first generated, and Firebird when regenerated.&lt;br /&gt;&lt;br /&gt;This was going to be a problem because all the queries were written in mixed case, but Firebird stores all field and table names in upper case (unless you quote each field and table name, which I figured is only going to cause problems later), so there was no possible way to map the text in the commands and field definitions to the Firebird interface.&lt;br /&gt;&lt;br /&gt;After converting queries and fields on the broken table adapter to upper case, and eliminating conflicting mapping statements and using all upper case in the newly altered table, the table adapters all work again. For safety I converted all the other table adapters to upper case as well.&lt;br /&gt;&lt;br /&gt;It looked like the behind-the-scenes work to incorporate the newly added columns had a problem with the mixed case of the fields. All the columns of the table were there in upper case&lt;br /&gt;&lt;br /&gt;One symptom you can look for is the field list in the table adapter disappears, all that's left is a list of queries. A second symptom which I missed because the relevant table has 30+ fields is that field names are listed twice, once in mixed case and once in all upper.&lt;br /&gt;&lt;br /&gt;Another symptom is after doing Configure on any query in the table adapter you get the "unable to convert object to a known ODBC type" error when you hit Finish.&lt;br /&gt;&lt;br /&gt;Since the case and field type issues were a result of moving from Access to Firebird I'm not sure how many people are going to run  into this. Bottom line, if you think your going to adopt Firebird later then declare everything in upper case to start with or prepare to comb your code for case-dependencies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-5703643407857018598?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/5703643407857018598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=5703643407857018598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5703643407857018598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5703643407857018598'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/08/table-adapters-invalid-and-cannot-be.html' title='Table Adapters invalid and cannot be generated after altering ODBC Firebird database'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-8541840269873618284</id><published>2010-08-26T10:57:00.000-07:00</published><updated>2010-08-26T10:57:27.631-07:00</updated><title type='text'>Case-insensitive sorting of Firebird field in a Visual Basic web application</title><content type='html'>I wanted to sort elements in a ListBox alphabetically without regard to case. However, Firebird does a case-sensitive sort, and I couldn't get it to recognize UPPER() in the SELECT statement. &lt;br /&gt;&lt;br /&gt;One solutions is to add the rows in the table adapter data table to an array of elements of a custom class. The custom class implements IComparable, so when you do Array.sort you can get the case-insensitive order desired. Here's my custom class:&lt;br /&gt;&lt;br /&gt;Public Class trendpoint&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Implements IComparable&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public name As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public description As String&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub New(ByVal name As String, ByVal description As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.name = name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.description = description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim comparepoint As trendpoint = CType(obj, trendpoint)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Me.name.ToUpper &amp;lt; comparepoint.name.ToUpper Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf Me.name.ToUpper &amp;gt; comparepoint.name.ToUpper Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;End Class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-8541840269873618284?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/8541840269873618284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=8541840269873618284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8541840269873618284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8541840269873618284'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/08/case-insensitive-sorting-of-firebird.html' title='Case-insensitive sorting of Firebird field in a Visual Basic web application'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6384137979560010180</id><published>2010-08-26T10:25:00.000-07:00</published><updated>2010-08-26T10:25:55.382-07:00</updated><title type='text'>Enable double click event on a ListBox in a vb.net web application</title><content type='html'>There's a &lt;a href="http://forums.asp.net/p/1089776/1635075.aspx"&gt;nice concise C# example&lt;/a&gt; of supporting double click event on a listbox control in an asp.net web application, here is the equivalent code (for the page load event) in Visual Basic. &lt;br /&gt;&lt;br /&gt;        If (Not Request.Item("__EVENTARGUMENT") Is Nothing And Request.Item("__EVENTARGUMENT") = "move") Then&lt;br /&gt;&lt;br /&gt;            Dim idx As Integer = ListBox1.SelectedIndex&lt;br /&gt;            Dim item As ListItem = ListBox1.SelectedItem&lt;br /&gt;            ListBox1.Items.Remove(item)&lt;br /&gt;            ListBox2.SelectedIndex = -1&lt;br /&gt;            ListBox2.Items.Add(item)&lt;br /&gt;&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        ListBox1.Attributes.Add("ondblclick", ClientScript.GetPostBackEventReference(ListBox1, "move"))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6384137979560010180?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6384137979560010180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6384137979560010180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6384137979560010180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6384137979560010180'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/08/enable-double-click-event-on-listbox-in.html' title='Enable double click event on a ListBox in a vb.net web application'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-1756179271522859129</id><published>2010-08-06T08:59:00.000-07:00</published><updated>2010-08-06T08:59:38.271-07:00</updated><title type='text'>Connecting to a Firebird database from a VB.net 2008 web application</title><content type='html'>There's a couple of posts related to connecting to a Firebird database from an asp.net 2008 web application that are helpful but not complete. &lt;br /&gt;&lt;br /&gt;First, you &lt;a href="http://firebird-vbnet.blogspot.com/2009/10/howto-create-dsn.html"&gt;establish a DSN connection&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When adding the DSN connection the prompts were a little different on my Vista machine than the post describes. First, I picked the Database source&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ZOZQRTau9dE/TFwvlSgUyhI/AAAAAAAAAkA/5E-SUTIkHQU/s1600/step1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://4.bp.blogspot.com/_ZOZQRTau9dE/TFwvlSgUyhI/AAAAAAAAAkA/5E-SUTIkHQU/s400/step1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then, after clicking New Connection button, click Change button on Data Source to switch from SQL Server to ODBC driver&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZOZQRTau9dE/TFwv8uSUnGI/AAAAAAAAAkI/L9KeiRD2gLk/s1600/after_new_connection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_ZOZQRTau9dE/TFwv8uSUnGI/AAAAAAAAAkI/L9KeiRD2gLk/s400/after_new_connection.png" width="275" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then, pick the Microsoft ODBC Data Source option&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZOZQRTau9dE/TFwwF0WD4EI/AAAAAAAAAkQ/KdJQifrIU4g/s1600/change_data_source.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://1.bp.blogspot.com/_ZOZQRTau9dE/TFwwF0WD4EI/AAAAAAAAAkQ/KdJQifrIU4g/s400/change_data_source.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once this is done when you add a new DSN connection the Firebird/Interbase drivers will be selectable.&lt;br /&gt;&lt;br /&gt;During the configuration of the Firebird DSN connection I ran into one other change from the earlier post, rather than browse to the database on the local machine I used the localhost: connection method (e.g. Database = "localhost:c:\program files\ ... \_WEBLINK.FDB")&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ZOZQRTau9dE/TFwufdqckfI/AAAAAAAAAj4/ONepN5a20as/s1600/firebird_odbc_setup3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="391" src="http://4.bp.blogspot.com/_ZOZQRTau9dE/TFwufdqckfI/AAAAAAAAAj4/ONepN5a20as/s400/firebird_odbc_setup3.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Database string is quoted on both ends, in the picture some of the connection string is whited out for (excessive) security.&lt;br /&gt;&lt;br /&gt;Now you can follow the &lt;a href="http://firebird-vbnet.blogspot.com/2009/10/establishing-data-connection-for-aspnet.html"&gt;second post&lt;/a&gt; to establish a data connection&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-1756179271522859129?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/1756179271522859129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=1756179271522859129' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1756179271522859129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1756179271522859129'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/08/connecting-to-firebird-database-from.html' title='Connecting to a Firebird database from a VB.net 2008 web application'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZOZQRTau9dE/TFwvlSgUyhI/AAAAAAAAAkA/5E-SUTIkHQU/s72-c/step1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-2043056584279334145</id><published>2010-07-22T20:43:00.000-07:00</published><updated>2010-07-22T20:43:18.381-07:00</updated><title type='text'>Registry key for IIS subauthenticator is not configured correctly</title><content type='html'>Installed a Visual Basic web app on a Windows Server 2003 box with IIS 6 today and got some strange intermittent symptoms. The customer could login about 2 times out of 3, and could access some second-level pages intermittently, but other second-level pages would fail immediately. Failures took the user back to the login page. &lt;br /&gt;&lt;br /&gt;The Event Viewer showed an error each time the user got bumped back to the login page, saying "Registry Key for IIS subauthenticator is not configured correctly"&lt;br /&gt;&lt;br /&gt;I found the Microsoft KB article with &lt;a href="http://support.microsoft.com/kb/332167"&gt;instructions to enable IIS management of the anonymous user password&lt;/a&gt;. After applying the 3 steps the website works perfectly.&lt;br /&gt;&lt;br /&gt;Took a while to resolve because I was baffled by the intermittent nature of the error, but once the correlation to the Event Viewer error was observed it was quick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-2043056584279334145?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/2043056584279334145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=2043056584279334145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2043056584279334145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2043056584279334145'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/07/registry-key-for-iis-subauthenticator.html' title='Registry key for IIS subauthenticator is not configured correctly'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6734737106422972675</id><published>2010-05-19T16:17:00.000-07:00</published><updated>2010-05-20T06:24:48.758-07:00</updated><title type='text'>Insert multiple records to Microsoft Access database</title><content type='html'>Did not find a simple answer as to how to insert multiple rows of raw data into an Access database using an Insert Into SQL statement, &lt;a href="http://stackoverflow.com/questions/1212943/sql-code-to-insert-multiple-rows-in-ms-access-table"&gt;this post&lt;/a&gt; is one of many to point out that VALUES is for single-row inserts, and you need to use a SELECT to insert more than 1 row - which means your values have to already be in the database.&lt;br /&gt;&lt;br /&gt;I don't believe there's a straightforward way to do it with a single SQL statement, but you can use free &lt;a href="http://sourceforge.net/projects/myoledbexpress/"&gt;MyOLEDBExpress database editing tool&lt;/a&gt; to accomplish it by cutting/pasting your columns of data from Excel spreadsheet or other source directly into a table. If you are combining data with values already in the database you can use a SELECT clause with the INSERT INTO statement to extract the insert values from tables.&lt;br /&gt;&lt;br /&gt;It may be worth the effort if you have hundreds of rows of data or more. Here's the Insert statement after the temp table has been created.&lt;br /&gt;&lt;br /&gt;INSERT INTO the_Access_Table (field1, field2) SELECT col1, col2 FROM temp_Table INNER JOIN other_Table ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6734737106422972675?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6734737106422972675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6734737106422972675' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6734737106422972675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6734737106422972675'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/05/insert-multiple-records-to-microsoft.html' title='Insert multiple records to Microsoft Access database'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6101194883398908057</id><published>2010-03-25T07:02:00.000-07:00</published><updated>2010-03-25T07:07:58.387-07:00</updated><title type='text'>VB.net Opening Connection to SQLServer</title><content type='html'>Was unable to connect from Visual Basic .NET 2008 to a SQL Server Express 2008 database using the online examples. I was getting the error "network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible"&lt;br /&gt;&lt;br /&gt;Changing from Data Source=(local) to Data Source=.\SQLEXPRESS fixed the issue&lt;br /&gt;&lt;br /&gt;Full example:&lt;br /&gt;&lt;br /&gt;        Dim myConnection As SqlConnection&lt;br /&gt;        Dim myCommand As SqlCommand&lt;br /&gt;        Dim dr As SqlDataReader&lt;br /&gt;&lt;br /&gt;        myConnection = New SqlConnection("Data Source=.\SQLEXPRESS;User ID=youruser;Password=yourpassword;Initial Catalog=yourdatabase")&lt;br /&gt;&lt;br /&gt;        Try&lt;br /&gt;            myConnection.Open()&lt;br /&gt;&lt;br /&gt;            myCommand = New SqlCommand("Select * from tblRoom", myConnection)&lt;br /&gt;&lt;br /&gt;            dr = myCommand.ExecuteReader()&lt;br /&gt;&lt;br /&gt;            While dr.Read()&lt;br /&gt;&lt;br /&gt;                MessageBox.Show("Field1 " &amp; dr(0).ToString() &amp; " Field2 " &amp; dr(1).ToString())&lt;br /&gt;&lt;br /&gt;            End While&lt;br /&gt;            dr.Close()&lt;br /&gt;            myConnection.Close()&lt;br /&gt;&lt;br /&gt;        Catch e As Exception&lt;br /&gt;'handle errors&lt;br /&gt;        End Try&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6101194883398908057?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6101194883398908057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6101194883398908057' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6101194883398908057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6101194883398908057'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2010/03/vbnet-opening-connection-to-sqlserver.html' title='VB.net Opening Connection to SQLServer'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-9165716689775151950</id><published>2009-12-04T09:13:00.000-08:00</published><updated>2009-12-04T09:16:05.021-08:00</updated><title type='text'>JDI thread evaluations - Exception processing async thread queue</title><content type='html'>After some debugging Eclipse may throw an async thread exception every time it hits a breakpoint. The message is along the lines of &lt;br /&gt;&lt;br /&gt;JDI thread evaluations&lt;br /&gt;Exception processing async thread queue&lt;br /&gt;&lt;br /&gt;You can clean this up by removing all watch statements and all breakpoints and restarting Eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-9165716689775151950?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/9165716689775151950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=9165716689775151950' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/9165716689775151950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/9165716689775151950'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/12/jdi-thread-evaluations-exception.html' title='JDI thread evaluations - Exception processing async thread queue'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-9187477951809154019</id><published>2009-11-11T15:09:00.001-08:00</published><updated>2009-11-11T15:12:12.058-08:00</updated><title type='text'>Firebird -902 error localhost refused connection</title><content type='html'>Seems too obvious but you will get this error if you try to Connect after you Stop or Pause your Firebird Server service. More common causes are amply documented on the web - Firewall blocking and Incorrect port # (default is 3050)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-9187477951809154019?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/9187477951809154019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=9187477951809154019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/9187477951809154019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/9187477951809154019'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/11/firebird-902-error-localhost-refused.html' title='Firebird -902 error localhost refused connection'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-5279015684130013905</id><published>2009-09-17T08:35:00.000-07:00</published><updated>2009-09-17T08:39:34.942-07:00</updated><title type='text'>Launching CHM help file from a Java application on Windows</title><content type='html'>Seems like an obvious need but could not find an example for how to launch a compiled HTML help file from inside a Java JAR application on a Windows machine, so here's one:&lt;br /&gt;&lt;br /&gt;String myHelpfile = path + "help.chm";&lt;br /&gt;String[] command = { "hh.exe", myHelpfile };&lt;br /&gt;try {&lt;br /&gt;    Process proc = Runtime.getRuntime().exec(command);&lt;br /&gt;} catch (IOException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-5279015684130013905?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/5279015684130013905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=5279015684130013905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5279015684130013905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5279015684130013905'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/09/launching-chm-help-file-from-java.html' title='Launching CHM help file from a Java application on Windows'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6336978021774654246</id><published>2009-08-28T09:55:00.000-07:00</published><updated>2009-08-28T10:00:32.755-07:00</updated><title type='text'>Removing requirement for NET Framework 3.5 from setup projects</title><content type='html'>A new setup and deployment project in Visual Basic 2008 will by default require .NET Framework 3.5 on the target machine&lt;br /&gt;&lt;br /&gt;If your application targets .NET Framework 2.0 this is a waste of time&lt;br /&gt;&lt;br /&gt;To change the requirement right-click on your setup project, select View, Launch Conditions, go to properties of the ".NET Framework" item under the Launch Conditions node and change the Version property to 2.0.50727&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6336978021774654246?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6336978021774654246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6336978021774654246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6336978021774654246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6336978021774654246'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/08/removing-requirement-for-net-framework.html' title='Removing requirement for NET Framework 3.5 from setup projects'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-4871993010119341757</id><published>2009-08-14T11:35:00.001-07:00</published><updated>2009-08-14T11:44:14.802-07:00</updated><title type='text'>How to find the control that generated a postback</title><content type='html'>Had a little trouble finding a good example of how to identify the control that generated a postback within the page_load &lt;br /&gt;&lt;br /&gt;There's a &lt;a href="http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx"&gt;nice article for C#&lt;/a&gt;, after a bit of tinkering here's a VB implementation:&lt;br /&gt;&lt;br /&gt;Public Function GetPostBackControl(ByVal curPage As Page) As Control&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Dim foundControl As Control&lt;br /&gt;&amp;nbsp;Dim controlName As String = curPage.Request.Params.Get("__EVENTTARGET")&lt;br /&gt;&lt;br /&gt;&amp;nbsp;If (Not controlName Is Nothing And controlName &lt;&gt; "") Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;foundControl = curPage.FindControl(controlName)&lt;br /&gt;&amp;nbsp;Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;' control causing postback must be a Button or imageButton&lt;br /&gt;&amp;nbsp;&amp;nbsp;For Each controlName In curPage.Request.Form.AllKeys&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;' image buttons have a ".x" or ".y" appended to name string&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If (controlName.EndsWith(".x") Or controlName.EndsWith(".y")) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;controlName = controlName.Substring(0, controlName.Length - 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim c As Control = curPage.FindControl(controlName)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If (TypeOf c Is Button Or TypeOf c Is ImageButton) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'first button we find is the one that caused the postback&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foundControl = c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit For&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;Next&lt;br /&gt;&amp;nbsp;End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;GetPostBackControl = foundControl&lt;br /&gt;&lt;br /&gt;End Function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-4871993010119341757?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/4871993010119341757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=4871993010119341757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4871993010119341757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4871993010119341757'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/08/how-to-find-control-that-generated.html' title='How to find the control that generated a postback'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-7459140088921186889</id><published>2009-07-10T15:17:00.000-07:00</published><updated>2009-07-10T15:25:57.177-07:00</updated><title type='text'>IIS hyperlinks fail - cannot open an anonymous level security token</title><content type='html'>Recently upgraded a test machine to Internet Explorer 8. While testing a new deployment today found that hyperlinks created in my web application stopped working. The error icon on the bottom left of the screen said: "Cannot open an anonymous level security token"&lt;br /&gt;&lt;br /&gt;The solution from a &lt;a href="http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?mid=6e619c7d-a2c3-48ea-9359-a980f9119cbe&amp;dg=microsoft.public.internetexplorer.general"&gt;microsoft community site&lt;/a&gt; was to reset DCOM default properties to "Connect/Identify". &lt;br /&gt;&lt;br /&gt;After rebooting and reopening the site in IE8 the links now work. &lt;br /&gt;&lt;br /&gt;We tinker with DCOM on this test machine quite often and I found it with default properties of "None/Impersonate" - maybe impersonate causes a problem for anon access but I don't remember these problems with IE7. Hopefully this is not a sign the IE8 is going to "UAC" all over the system like Vista did.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-7459140088921186889?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/7459140088921186889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=7459140088921186889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7459140088921186889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7459140088921186889'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/07/iis-hyperlinks-fail-cannot-open.html' title='IIS hyperlinks fail - cannot open an anonymous level security token'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-357673950511487991</id><published>2009-07-10T14:48:00.000-07:00</published><updated>2009-07-10T15:12:37.170-07:00</updated><title type='text'>Getting version number from a visual basic 2008 web application</title><content type='html'>Dim versionInfo As String = System.Reflection.Assembly.GetExecutingAssembly().GetName() .Version.ToString()&lt;br /&gt;&lt;br /&gt;Obvious in hindsight, but took me a little while to find it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-357673950511487991?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/357673950511487991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=357673950511487991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/357673950511487991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/357673950511487991'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/07/getting-version-number-from-visual.html' title='Getting version number from a visual basic 2008 web application'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-7255310320319344294</id><published>2009-07-07T15:04:00.000-07:00</published><updated>2009-07-07T15:53:57.256-07:00</updated><title type='text'>Changing the background color of a checkbox at runtime</title><content type='html'>I wanted to show 3 values in a checkbox ("full", "partial", and "empty") by changing background color of the selected checkbox when state is "partial"&lt;br /&gt;&lt;br /&gt;I thought we could simply set the background color property, but that had no effect for me at runtime. It took a while to find how to programatically change background color of a checkbox on a VB web form, finally &lt;a href="http://www.vbforums.com/showthread.php?t=509333"&gt;this post&lt;/a&gt; and &lt;a href="http://www.webmasterworld.com/forum91/3125.htm"&gt;this post&lt;/a&gt; got me close enough. &lt;br /&gt;&lt;br /&gt;How to change the color at runtime:&lt;br /&gt;&lt;br /&gt;(1) Add CSS style declarations to your form's design view (.aspx page), for example:&lt;br /&gt;&lt;br /&gt;.full {&lt;br /&gt;background-color: #fff;&lt;br /&gt;}&lt;br /&gt;.partial {&lt;br /&gt;background-color: #ccc;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(2) in the form load method add some code like this:&lt;br /&gt;&lt;br /&gt;        curControl = CType(Page.FindControl(sID), CheckBox)&lt;br /&gt;&lt;br /&gt;        if (ispartial) then&lt;br /&gt;            curControl.Checked = True&lt;br /&gt;            curControl.CssClass = "partial"&lt;br /&gt;        else if (isfull) then&lt;br /&gt;            curControl.Checked = True&lt;br /&gt;            curControl.CssClass = "full"&lt;br /&gt;etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-7255310320319344294?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/7255310320319344294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=7255310320319344294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7255310320319344294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7255310320319344294'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/07/changing-background-color-of-checkbox.html' title='Changing the background color of a checkbox at runtime'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-7191075980239853196</id><published>2009-06-25T12:17:00.001-07:00</published><updated>2009-06-25T14:16:37.648-07:00</updated><title type='text'>Visual Studio 2008 IDE memory leak - "Enable error correction suggestions" causes sluggish behavior, freezing, and crashes</title><content type='html'>Have been experiencing slowdowns, freezing and crashing of the visual basic IDE on a consistent basis for a few days.&lt;br /&gt;&lt;br /&gt;I can see memory leaking in megabyte+ chunks within Task Manager each time I type anything in the IDE on a VB code page. With just one file open I can keep the memory growing indefinitely in ~10MB increments by adding any text, erasing it, saving, and then repeating.&lt;br /&gt;&lt;br /&gt;The additional memory is not fully recovered so I eventually have to restart the IDE to avoid a crash. I've seen it climb up to 1.4 GB (out of 3 GB). This was not a sustainable way to work.&lt;br /&gt;&lt;br /&gt;Almost sure this behavior started after June 2009 windows hotfixes were applied. I had been working primarily in Java/Eclipse the last few months, but intermittenly spent time in the VS2008 IDE producing hotfixes and had not experienced this instability before.&lt;br /&gt;&lt;br /&gt;Tried removing Office 2007 (trial) since that was mentioned as a possible issue in a couple of places, but no change. Tried removing MS Works which was recently installed as a "security hotfix" - only to find that is a whole can of worms by itself.&lt;br /&gt;&lt;br /&gt;WORKAROUND: What finally seems to have stabilized the IDE is de-selecting the "Enable error correction suggestions" option.&lt;br /&gt;&lt;br /&gt;HOW TO: to de-select this option go to Tools, Options, Text Editor, Basic, VB Specific - uncheck the box and hit OK.&lt;br /&gt;&lt;br /&gt;If anyone has any better suggestions please feel free to post in comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-7191075980239853196?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/7191075980239853196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=7191075980239853196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7191075980239853196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7191075980239853196'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/06/visual-studio-2008-ide-memory-leak.html' title='Visual Studio 2008 IDE memory leak - &quot;Enable error correction suggestions&quot; causes sluggish behavior, freezing, and crashes'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-2044531366197113077</id><published>2009-04-23T12:55:00.001-07:00</published><updated>2009-04-23T13:02:07.714-07:00</updated><title type='text'>Using "Zone" as a field alias in SQL query generates getDescription error 80004005</title><content type='html'>Spent a few minutes on this one and it seemed worth noting. I was trying to run a query joining a few tables using field aliases (e.g. tbl_X.fieldY AS aliasZ) because each table has an fName field that I need to reference.&lt;br /&gt;&lt;br /&gt;The query generated an error: IErrorInfo.GetDescription failed with E_FAIL(0x80004005)&lt;br /&gt;&lt;br /&gt;At first I thought it as a DCOM permissions issue, since error code 80004005 can indicate an insufficient security permissions when accessing resources using COM. However, it turns out my alias tbl_Zone.fName as Zone" was the problem.&lt;br /&gt;&lt;br /&gt;Apparently Zone is a reserved word in this context? Who knew.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-2044531366197113077?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/2044531366197113077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=2044531366197113077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2044531366197113077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2044531366197113077'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/04/using-zone-as-field-alias-in-sql-query.html' title='Using &quot;Zone&quot; as a field alias in SQL query generates getDescription error 80004005'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-2434337620770849206</id><published>2009-03-11T15:13:00.000-07:00</published><updated>2009-03-11T15:18:12.565-07:00</updated><title type='text'>Checkbox would not check in Firefox while sharing Z-index with other checkboxes</title><content type='html'>Just debugged a little issue with checkboxes on web forms in Visual Studio 2008 while using Firefox. I have a column of checkboxes that were cloned from a single instance (cut/paste in the text portion of the design view) then distributed vertically by manually editing the top value.&lt;br /&gt;&lt;br /&gt;The checkboxes worked fine in IE, but in Firefox I could not get them to change state to Checked. After changing to a unique z index the checkboxes started working again. Interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-2434337620770849206?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/2434337620770849206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=2434337620770849206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2434337620770849206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/2434337620770849206'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/03/checkbox-would-not-check-in-firefox.html' title='Checkbox would not check in Firefox while sharing Z-index with other checkboxes'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-357403952413067466</id><published>2009-01-07T19:38:00.000-08:00</published><updated>2009-01-07T19:39:30.745-08:00</updated><title type='text'>Where to find the Devenv.exe /resetskippkgs command</title><content type='html'>If you install Visual Studio 2008 Standard Edition after running the VS 2008 Professional 90 day trial you may get a package load failure when you start the Standard environment.&lt;br /&gt;&lt;br /&gt;The error message recommends running "devenv /resetskippkgs" from the command line, but no location is specified and the path was not recognized on my PC so the command did not run&lt;br /&gt;&lt;br /&gt;For visual studio 2008 the command is found in the C:\Windows\Microsoft.NET\Framework\v3.5 directory. Make sure you have shut down any open instances of VS before running this command. The command will open a new instance, which I closed immediately in order to save the updated settings. No more warnings about packages since then&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-357403952413067466?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/357403952413067466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=357403952413067466' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/357403952413067466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/357403952413067466'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/01/where-to-find-devenvexe-resetskippkgs_07.html' title='Where to find the Devenv.exe /resetskippkgs command'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-106974701920373638</id><published>2009-01-07T19:14:00.001-08:00</published><updated>2009-01-07T19:34:49.685-08:00</updated><title type='text'>Installing Visual Studio 2008 Standard after running the VS2008 Professional trial</title><content type='html'>I could not find anything on this so here's a post to say it was easy to install Visual Studio 2008 Standard edition after running the Visual Studio Professional trial version. So far no trouble working with my web application, windows forms, windows service, and windows DLL projects that were upgraded from VS 2005 using the 2008 Pro trial version.&lt;br /&gt;&lt;br /&gt;I installed Standard on day 89 of the trial. When I started the IDE it defaulted to the Pro trial, so I went to Control Panel, Programs &amp;amp; Features (Vista), and selected uninstall on the "Microsoft Visual Studio 2008 Professional - ENU" entry.&lt;br /&gt;&lt;br /&gt;That launched an installer looking essentially the same as the VS2008 Standard installer, but with a "maintenance mode" label. Next, selected Add/Remove, and confirmed yes to "remove all of Visual Studio 2008". The warning sounds a bit ominous, but it removes just the Pro version and after that my opened up in Standard just fine. There was a single warning about a package not loading which apparently can be resolved by running devenv with the /resetskippkgs option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-106974701920373638?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/106974701920373638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=106974701920373638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/106974701920373638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/106974701920373638'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/01/installing-visual-studio-2008-standard.html' title='Installing Visual Studio 2008 Standard after running the VS2008 Professional trial'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-7640937694400215735</id><published>2009-01-06T09:35:00.000-08:00</published><updated>2009-01-06T10:09:41.104-08:00</updated><title type='text'>New setup project MSI requires .NET Framework 3.5 even though project targets other Framework</title><content type='html'>If you create a new Setup project in VS2008 for a project targeting Framework 2.0 it will prompt the user to install Framework 3.5 even if it is not needed.&lt;br /&gt;&lt;br /&gt;To fix this right-click on the Setup project in the solution explorer, select View, Launch Conditions. Right-click on the ".Net Framework" item, select Properties Window, then select your appropriate framework version (e.g. 2.0.50727)&lt;br /&gt;&lt;br /&gt;Next time you build the solution the MSI will require only the appropriate Framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-7640937694400215735?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/7640937694400215735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=7640937694400215735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7640937694400215735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/7640937694400215735'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2009/01/new-setup-project-msi-requires-net.html' title='New setup project MSI requires .NET Framework 3.5 even though project targets other Framework'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-5101396852903698023</id><published>2008-12-23T12:25:00.000-08:00</published><updated>2008-12-23T12:37:51.302-08:00</updated><title type='text'>Visual Studio 2008 unable to build due to corrupted XML documentation file in referenced DLL</title><content type='html'>Just resolved a vexing problem that does not seem to be described elsewhere. I have a Visual Basic application which references a DLL built by another VB project. A couple months ago the DLL generated an XML documentation file during one of the first build attempts on Visual Studio 2008. I only wanted to verify I could build so I didn't notice or care about the XML file.&lt;br /&gt;&lt;br /&gt;When I later tried to build again the XML file could not be overwritten. I could not delete or rename the file as Administrator or any other user. I finally de-selected the XML documentation checkbox in the Project in order to generate new builds of the DLL&lt;br /&gt;&lt;br /&gt;Today I was blocked from building a project that references that DLL. Each time I tried it would fail while trying to copy the XML documentation file.&lt;br /&gt;&lt;br /&gt;I finally booted to safe mode and let the OS do a low-level disk scan (CHKDISK?). The system found and removed the corrupted XML document file.&lt;br /&gt;&lt;br /&gt;I guess I should have tried looking at the disk earlier, I've never had a situation where even Administrator could not alter or delete a file (other than malware).&lt;br /&gt;&lt;br /&gt;Can not recall how the XML file could have been corrupted, but I'd guess it was an aborted build. I found threads that mentioned the XML file gets renamed during the build process, and can get "sticky" if you abort a build, so maybe this was a manifestation of that.&lt;br /&gt;&lt;br /&gt;Bottom line is if you ever get an error saying something like "access denied" when trying to copy, rename, overwrite, or change settings on  the XML documentation file consider running CHKDISK or the like before dynamiting your computer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-5101396852903698023?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/5101396852903698023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=5101396852903698023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5101396852903698023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5101396852903698023'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/visual-studio-2008-unable-to-build-due.html' title='Visual Studio 2008 unable to build due to corrupted XML documentation file in referenced DLL'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-1676820811931774920</id><published>2008-12-18T09:53:00.000-08:00</published><updated>2008-12-18T10:01:44.315-08:00</updated><title type='text'>Word Mail Merge "Not Responding"</title><content type='html'>I ran into an issue doing a mail merge today that, while it falls into the user-generated DOH! category, is still worth documenting. The symptom was a totally non-responsive instance of Word when I tried to do the last step "Edit Individual Items". &lt;br /&gt;&lt;br /&gt;I have about 140 items in the merge. I selected the "ALL" button to fixup some labels manually and save the file, but Word would never come back and I'd have to kill everything and start over.&lt;br /&gt;&lt;br /&gt;The DOH! moment came when I finally tried selecting items 1 through 150 instead of ALL. Word came back quickly with the correct data. In hindsight it's obvious Word was reading too many records from Excel. I had applied formatting to a column (not just the cells with data), and I think that was what caused Word to read all 65,555 rows from the Excel file when I told it to merge ALL.&lt;br /&gt;&lt;br /&gt;You can confirm this by scrolling down the items in the window that pops-up when you select a data source.  You can apply a Filter (e.g. Company - not equal to - blank) at this stage to eliminate the ghost rows.&lt;br /&gt;&lt;br /&gt;DOH!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-1676820811931774920?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/1676820811931774920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=1676820811931774920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1676820811931774920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1676820811931774920'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/word-mail-merge-not-responding.html' title='Word Mail Merge &quot;Not Responding&quot;'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-5545214744060347717</id><published>2008-12-17T13:35:00.000-08:00</published><updated>2008-12-17T13:38:27.386-08:00</updated><title type='text'>Ctrl+Alt+End to reboot over Remote Desktop</title><content type='html'>To reboot the remote PC in a Remote Desktop session use Ctrl-Alt-End rather than Ctrl-Alt-Del. On XP systems select "Shutdown" and you will get a choice whether to restart or go cold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-5545214744060347717?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/5545214744060347717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=5545214744060347717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5545214744060347717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/5545214744060347717'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/ctrlaltend-to-reboot-over-remote.html' title='Ctrl+Alt+End to reboot over Remote Desktop'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-3044252739379878753</id><published>2008-12-15T16:01:00.000-08:00</published><updated>2008-12-15T16:07:11.453-08:00</updated><title type='text'>"Toner Low" on Brother HL 4040 printer</title><content type='html'>Okay, it's not a VB note, but it's worth sharing. My Brother 4040 printer was refusing to print due to "Toner Low" on multiple cartridges. There was plenty of toner in the cartridge, of course, but blocking the sensor holes with electrical tape did not reset the alarm. After some hunting found &lt;a href="http://www.fixyourownprinter.com/forums/laser/39806"&gt;this article&lt;/a&gt; that describes how to reset the internal page count for the cartridge. The specific instructions for the 4040 were buried in the article, so here they are:&lt;br /&gt;&lt;br /&gt;(1) open front door&lt;br /&gt;(2) hold down Cancel button&lt;br /&gt;(3) press Reprint button&lt;br /&gt;&lt;br /&gt;The Devices Reset menu appears. Arrow up/down to find your cartridge.  I reset both H and S settings for both M and C cartridges &lt;br /&gt;&lt;br /&gt;After closing the front door a "Drum Error" appeared. Rather than hunting down the cause I manually reseated both the M and C cartridges and the error disappeared.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-3044252739379878753?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/3044252739379878753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=3044252739379878753' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/3044252739379878753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/3044252739379878753'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/toner-low-on-brother-hl-4040-printer.html' title='&quot;Toner Low&quot; on Brother HL 4040 printer'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-382526705017863166</id><published>2008-12-11T09:38:00.000-08:00</published><updated>2008-12-11T09:51:00.623-08:00</updated><title type='text'>Located assembly's manifest definition does not match the assembly reference</title><content type='html'>I wanted to test a fix to a DLL referenced in a Visual Studio 2.0 web application project on Framework 2.0. I created a new DLL (v2.5.6) and copied it into the BIN folder of my web app, but kept a copy of the old DLL (v2.5.1) in place under a different name. I did this in case the fix didn't work, so I could easily revert.&lt;br /&gt;&lt;br /&gt;I was surprised that Visual Studio failed, it found the renamed version 2.5.1 and threw a "located assembly's manifest definition does not match the assembly reference" error&lt;br /&gt;&lt;br /&gt;Even though My Project, Refernces showed the correct version number for this DLL I tried removing the reference to the DLL and recreating it pointing to v2.5.6. VS threw the same error again&lt;br /&gt;&lt;br /&gt;Simple fix was to delete the renamed older version from the BIN directory.  DOH! I assumed the new DLL assembly would have a new GUID due to the new version, but apparently not.&lt;br /&gt;&lt;br /&gt;Posting this because the most &lt;a href="http://blogs.msdn.com/junfeng/archive/2004/03/25/95826.aspx"&gt;promising reference&lt;/a&gt; I found by searching on the error proposed a very technical solution, and this simple fix may help someone else quickly resolve this same type of error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-382526705017863166?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/382526705017863166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=382526705017863166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/382526705017863166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/382526705017863166'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/located-assemblys-manifest-definition.html' title='Located assembly&apos;s manifest definition does not match the assembly reference'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-4673579220147240773</id><published>2008-12-11T07:45:00.001-08:00</published><updated>2008-12-11T09:23:30.620-08:00</updated><title type='text'>Access Denied error when building DLL - unable to set permissions on XML documentation file</title><content type='html'>Trying to build a Visual Basic DLL in Visual Studio 2008 was throwing an "access denied" error every time because the XML documentation file in the OBJ\Release directory could not be overwritten.&lt;br /&gt;&lt;br /&gt;Ran into a brick wall trying to change owner of the XML file. I can't change the permissions on my own file as Administrator, WTF? Thanks MSFT for wasting more of my time with Vista!&lt;br /&gt;&lt;br /&gt;Finally found a &lt;a href="http://gchandra.wordpress.com/2008/02/22/disable-xml-file-generation-when-building-aspnet-application/"&gt;clue here&lt;/a&gt; that all I had to do was de-select the XML documentation option for the project, on the Project settings, Compile window.&lt;br /&gt;&lt;br /&gt;I would like to know how that XML documentation got selected in the first place, possibly some auto-setting during the upgrade from VS 2005. Mystifying because the DLL built fine after the upgrade, but a couple months later when I edit the code and try to rebuild it fails.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-4673579220147240773?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/4673579220147240773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=4673579220147240773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4673579220147240773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4673579220147240773'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/access-denied-error-when-building-dll.html' title='Access Denied error when building DLL - unable to set permissions on XML documentation file'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-8161482258163994825</id><published>2008-12-08T15:00:00.000-08:00</published><updated>2008-12-08T15:04:46.965-08:00</updated><title type='text'>Changing default browser in Visual Studio 2008</title><content type='html'>The command to reset the default browser in VS2008 is obvious once found, but not the easiest to find when you need it. &lt;a href="http://stevenharman.net/blog/archive/2007/08/02/setting-a-default-browser-for-visual-studio.aspx"&gt;This article&lt;/a&gt; explains where to find it (right-click on ASPX file, select "browse with") but did not mention that you need an ASPX file in a website project. ASPX files in my web application project did not show the browse menu. If your upgrading web projects from VS2003 you typically will choose a web application type project rather than a website project, and you may miss this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-8161482258163994825?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/8161482258163994825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=8161482258163994825' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8161482258163994825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8161482258163994825'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/12/changing-default-browser-in-visual.html' title='Changing default browser in Visual Studio 2008'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-8240775684599083331</id><published>2008-11-14T10:39:00.000-08:00</published><updated>2008-11-14T10:44:53.933-08:00</updated><title type='text'>Flickering cursor when viewing help</title><content type='html'>Symptom: when you hit F1 to access help the cursor on the doc explorer window flickers continuously.&lt;br /&gt;&lt;br /&gt;MSFT &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=378476"&gt;says it's a bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A workaround is suggested &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=378476"&gt;here&lt;/a&gt;, you switch options from "online only" to "Local first, then online", and remove the "Codezone" and "Questions" online targets. I found it works at first, but fails on subsequent searches.&lt;br /&gt;&lt;br /&gt;Clicking on the scroll bar seems to work better, it stops the flicker in VS2008 Pro on my Vista box&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-8240775684599083331?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/8240775684599083331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=8240775684599083331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8240775684599083331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/8240775684599083331'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/11/flickering-cursor-when-viewing-help.html' title='Flickering cursor when viewing help'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6446645961456217071</id><published>2008-11-14T08:43:00.000-08:00</published><updated>2008-11-14T18:02:26.375-08:00</updated><title type='text'>VS2008 does not allow multiple select</title><content type='html'>TOTALLY INCOMPREHENSIBLE decision by VS2008 product management, but you cannot select more than one control on a web form in Visual Studio 2008.&lt;br /&gt;&lt;br /&gt;Microsoft confirms this in a couple places, like &lt;a href="http://msdn.microsoft.com/en-us/library/1bd4c7h8.aspx"&gt;here&lt;/a&gt; (scroll to bottom, note the correction to the documentation) and &lt;a href="http://forums.asp.net/t/1187256.aspx"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WTF? Can you release an IDE that doesn't support multiselect? I guess so.&lt;br /&gt;&lt;br /&gt;Maybe it's the same product managers who added UAC to Vista? Who else could release "enhanced" security that you disable to make the operating system usable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6446645961456217071?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6446645961456217071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6446645961456217071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6446645961456217071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6446645961456217071'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/11/vs2008-does-not-allow-multiple-select.html' title='VS2008 does not allow multiple select'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6838959724078327858</id><published>2008-10-22T14:59:00.000-07:00</published><updated>2008-10-22T15:06:58.309-07:00</updated><title type='text'>IIS 7 - virtual directory on Framework 1.1 can fail if Default Website on 2.0</title><content type='html'>I have seen a couple of failures in IIS 7 on Vista when running a virtual directory on Framework 1.1 under the Default Website, when the default site is on Framework 2.0.&lt;br /&gt;&lt;br /&gt;The most recent failure occured after upgrading the source for the virtual directory. Yesterday the same site worked fine, after today's upgrade the mappings for Framework 1.1 were lost. Did not delete the directory, just an in-place upgrade of a few ASPX files.&lt;br /&gt;&lt;br /&gt;Restored the 1.1 mappings by running aspnet_regiis from the 1.1 directory. To be safe I put the default directory on 1.1 as well. &lt;br /&gt;&lt;br /&gt;Maybe this is documented somewhere? I have not run into anything mentioning this yet, but in hindsight it seems prudent to have both on 1.1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6838959724078327858?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6838959724078327858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6838959724078327858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6838959724078327858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6838959724078327858'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/10/iis-7-virtual-directory-on-framework-11.html' title='IIS 7 - virtual directory on Framework 1.1 can fail if Default Website on 2.0'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-1896576553823082270</id><published>2008-10-20T15:23:00.000-07:00</published><updated>2008-10-22T08:18:36.411-07:00</updated><title type='text'>Visual Studio 2008 - what's in what version</title><content type='html'>At this point in time Microsoft has contradictory information posted about what features are included in the Standard versus Professional editions of Visual Studio 2008. The &lt;a href="http://msdn.microsoft.com/en-us/vs2008/products/cc149003.aspx"&gt;main page&lt;/a&gt; says one thing, and the &lt;a href="http://download.microsoft.com/download/5/f/e/5feb6914-bcdf-432f-81c7-e386812b086a/VisualStudio2008-ProductComparison-v1.08.pdf"&gt;downloadable 35 page PDF&lt;/a&gt; comparison of features says another.&lt;br /&gt;&lt;br /&gt;The 35 page comparison where 98% of the items agree is virtually useless. Is MSFT trying to bury us in useless info so we just throw up our hands and buy the more expensive edition? Certainly looks like it.&lt;br /&gt;&lt;br /&gt;Two things I could not clarify: are the menus redacted in Standard? Are you limited to a single (ClickOnce) deployment method in Standard?&lt;br /&gt;&lt;br /&gt;The template for web unit testing is NOT included in Pro, for that you need Test Edition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-1896576553823082270?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/1896576553823082270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=1896576553823082270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1896576553823082270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1896576553823082270'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/10/visual-studio-2008-whats-in-what.html' title='Visual Studio 2008 - what&apos;s in what version'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-6188336282992225741</id><published>2008-10-17T08:07:00.000-07:00</published><updated>2008-10-17T08:26:12.134-07:00</updated><title type='text'>Windows service recovery - enable actions for stops with errors checkbox</title><content type='html'>I'm baffled by the meaning of the check-box on the windows service recovery tab with the text "Enable actions for stops with errors"&lt;br /&gt;&lt;br /&gt;The only Microsoft documentation I can find on it says "Select &lt;strong&gt;Enable actions for stops with errors&lt;/strong&gt; in order to trigger the recovery actions that the service stopped with an error".  What a great example of Ambiguish, a sub-type of English&lt;br /&gt;&lt;br /&gt;The requirement is to have the service restart every time. A nightly anti-virus scan seems to be conflicting with the service occasionally, perhaps while accessing the DB or the logfile. Given the recurring but temporary nature of this conflict we need to be sure there's nothing blocking the service from restarting.&lt;br /&gt;&lt;br /&gt;I ran some tests where I blocked access to the log file to trigger service failure. Bottom line, the service recovers the same whether or not the checkbox is selected. Maybe I need to reboot the PC to see the effects? At this point I'm just happy to confirm that the service restarts as many times as needed, and will move on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-6188336282992225741?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/6188336282992225741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=6188336282992225741' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6188336282992225741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/6188336282992225741'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/10/windows-service-recovery-enable-actions.html' title='Windows service recovery - enable actions for stops with errors checkbox'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-957117399685448384</id><published>2008-10-17T07:27:00.000-07:00</published><updated>2008-10-17T07:32:53.995-07:00</updated><title type='text'>Configuration Manager: the specified device instance handle does not correspond to a present device</title><content type='html'>Working with a service created in Visual Studio 2008 I started getting this cryptic error message. Can't recall exactly when it first appeared but it was probably after manual edits to the registry to add a dependency or to recreate the service. No loss of functionality so I put off fixing it for a couple days.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://groups.google.com/group/microsoft.public.windowsxp.embedded/browse_thread/thread/63db759e464f1773/25994f33c23e2221?lnk=st&amp;amp;q=The+specified+device+instance+handle+does+not+correspond+to+a+present+device&amp;amp;rnum=3&amp;amp;pli=1"&gt;solution&lt;/a&gt; is very simple, in the registry delete the "Enum" subkey for the service, then close and re-open the services console and the message should be gone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-957117399685448384?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/957117399685448384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=957117399685448384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/957117399685448384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/957117399685448384'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/10/configuration-manager-specified-device.html' title='Configuration Manager: the specified device instance handle does not correspond to a present device'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-551168680106237464</id><published>2008-10-11T17:24:00.000-07:00</published><updated>2008-10-11T17:31:05.505-07:00</updated><title type='text'>Visual Studio 2008 setup project says it requires .NET Framework 3.5</title><content type='html'>Just did my first setup project on visual studio 2008 from scratch rather than upgrade. The msi on the target machine said "this setup requires the .NET Framework version 3.5", even though the solution targets 2.0 exclusively.&lt;br /&gt;&lt;br /&gt;Solved by right-clicking on the setup project, View, Launch Conditions. Then edit the properties of the Requirements on Target Machine=&gt;Launch Conditions=&gt;.NET Framework node. Default is 3.5&lt;br /&gt;&lt;br /&gt;Upgraded setup projects defaulted to 2.0 after I selected that as the default general behavior for upgrading projects targeting 1.1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-551168680106237464?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/551168680106237464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=551168680106237464' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/551168680106237464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/551168680106237464'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/10/visual-studio-2008-setup-project-says.html' title='Visual Studio 2008 setup project says it requires .NET Framework 3.5'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-1950907101574189998</id><published>2008-09-30T13:18:00.000-07:00</published><updated>2008-09-30T13:23:28.899-07:00</updated><title type='text'>Cut and paste is disabled in Remote Desktop session</title><content type='html'>A quick reminder of the counter-intuitive setting to enable cut and paste functionality on a remote PC during a Remote Desktop Connection sessions.&lt;br /&gt;&lt;br /&gt;Open the RDC window to start a connection. Before connecting, cick on Options, select Local Resources tab, and DE-select the "clipboard" checkbox under the heading "select resources you want to use in your remote session".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZOZQRTau9dE/SOKKcDQmCaI/AAAAAAAAAAo/SW2gL_nfXBI/s1600-h/rdc_settings.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_ZOZQRTau9dE/SOKKcDQmCaI/AAAAAAAAAAo/SW2gL_nfXBI/s320/rdc_settings.jpg" alt="" id="BLOGGER_PHOTO_ID_5251912329983297954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now you will be able to use normal cut/paste functionality on the remote PC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-1950907101574189998?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/1950907101574189998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=1950907101574189998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1950907101574189998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1950907101574189998'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/09/cut-and-paste-is-disabled-in-remote.html' title='Cut and paste is disabled in Remote Desktop session'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZOZQRTau9dE/SOKKcDQmCaI/AAAAAAAAAAo/SW2gL_nfXBI/s72-c/rdc_settings.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-4270601367989203619</id><published>2008-09-25T15:12:00.000-07:00</published><updated>2008-09-26T09:02:26.067-07:00</updated><title type='text'>Timer on a new thread attached to a windows service disappears after 10 minutes</title><content type='html'>I created a visual basic windows service application in Visual Studio 2005 which needed a timer to fire every 10 seconds. I found an example showing how to attach a timer in a new thread to the service which worked fine during development.&lt;br /&gt;&lt;br /&gt;Then I installed on a test system and the timer would fire for 10 minutes and then disappear and the service would stop working. Stopping consistently at ten minutes was a clue.&lt;br /&gt;&lt;br /&gt;There was no succinct explanation, but Garbage Collection came up in reference to unattended threads. The timer on a new thread was eligible for GC if it was not referenced periodically.  The solution was simple,  make the timer handle a global variable, and referencing the handle each time the timer handler invokes.&lt;br /&gt;&lt;br /&gt;Public Class My_Scheduler_Service&lt;br /&gt;&lt;br /&gt;  Dim tDelegate As Threading.TimerCallback&lt;br /&gt;  Dim oTimer As System.Threading.Timer&lt;br /&gt;&lt;br /&gt;  Protected Overrides Sub OnStart(ByVal args() As String)&lt;br /&gt;.....&lt;br /&gt;      tDelegate = AddressOf TimerFireEvent                 ' my timer handler&lt;br /&gt;      oTimer = New System.Threading.Timer(tDelegate, Me, 0, iTIME_INTERVAL)&lt;br /&gt;&lt;br /&gt;  end sub&lt;br /&gt;&lt;br /&gt;    Public Sub TimerFireEvent(ByVal sender As Object)&lt;br /&gt;&lt;br /&gt;       Try&lt;br /&gt;            'reference timer to avoid Garbage Collection&lt;br /&gt;            If (oTimer Is Nothing) Then&lt;br /&gt;                System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() &amp;amp; ": oTimer = nothing" &amp;amp; vbCrLf)&lt;br /&gt;            Else&lt;br /&gt;                System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() &amp;amp; ": oTimer OK" &amp;amp; vbCrLf)&lt;br /&gt;            End If&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Posting this because Garbage collection impact on a new timer thread was not something I saw clearly in documentation or examples.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-4270601367989203619?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/4270601367989203619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=4270601367989203619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4270601367989203619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/4270601367989203619'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/09/timer-on-new-thread-attached-to-windows.html' title='Timer on a new thread attached to a windows service disappears after 10 minutes'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-3778838392765761769</id><published>2008-09-11T16:39:00.000-07:00</published><updated>2008-09-11T16:56:42.046-07:00</updated><title type='text'>Visual Studio 2005 MSI install fails on Vista - "Installation Incomplete"</title><content type='html'>Built an MSI on the Web Setup Project template in Visual Studio 2005 on my Vista dev machine and tried to install to a Vista Home Premium machine.  The MSI quickly stops and says "Installation Incomplete", without any useful feedback.&lt;br /&gt;&lt;br /&gt;I created a log file, the fatal error code was 1603 but that didn't lead to much help.&lt;br /&gt;&lt;br /&gt;Tried Windows Installer Cleanup Tool, no help.  Tried upgrading to Installer 4.5, no help. Finally I remembered a post that mentioned IIS 6 compatibility being required for some MSI packages (http://forums.karamasoft.com/ShowPost.aspx?PostID=6495).  I had ignored it since I was building on Vista with IIS7, and installing to Vista with IIS7, but of course....&lt;br /&gt;&lt;br /&gt;Went to Control Panel, Programs &amp;amp; Features, Add/Remove Windows Component - turned on all the IIS6 compatibility options and retried the MSI.  Installs clean now.&lt;br /&gt;&lt;br /&gt;Lesson?  I believe since Visual Studio 2005 was released at the time of IIS6 it still relies on the old API, so keep this in mind when installing web setup projects to Vista boxes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-3778838392765761769?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/3778838392765761769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=3778838392765761769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/3778838392765761769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/3778838392765761769'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/09/visual-studio-2005-msi-install-fails-on.html' title='Visual Studio 2005 MSI install fails on Vista - &quot;Installation Incomplete&quot;'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-668278497331958786</id><published>2008-09-11T11:38:00.000-07:00</published><updated>2008-09-11T11:45:26.055-07:00</updated><title type='text'>How to create a log file for an MSI install</title><content type='html'>I built an MSI using a Visual Studio 2005 web setup project. This type of project is a simpler install than a web application project, but there is no way to pick the target folder for the install.&lt;br /&gt;&lt;br /&gt;An article explains how to modify an MSI (&lt;a href="http://www.codeproject.com/KB/install/ChangeVDirWebSetupProject.aspx"&gt;http://www.codeproject.com/KB/install/ChangeVDirWebSetupProject.aspx&lt;/a&gt;), but at the end of the process the new MSI is generating errors trying to install on a Vista Home Premium machine. &lt;br /&gt;&lt;br /&gt;I had a bit of trouble generating a log file, so here is the working example:&lt;br /&gt;&lt;br /&gt;c:Installs&gt;msiexec /i MyPackage.msi /l* MyLog.txt&lt;br /&gt;&lt;br /&gt;this generates a local file log in MyLog.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-668278497331958786?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/668278497331958786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=668278497331958786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/668278497331958786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/668278497331958786'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/09/how-to-create-log-file-for-msi-install.html' title='How to create a log file for an MSI install'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531015724450253542.post-1280782570364586986</id><published>2008-09-10T13:41:00.000-07:00</published><updated>2008-09-10T14:28:29.935-07:00</updated><title type='text'>Parser Error Message: Could not load type 'WebApplication1.Login'</title><content type='html'>This type of error popped up when porting a Visual Basic 2003 web project to become a Visual Studio 2005 web application project.&lt;br /&gt;&lt;br /&gt;This was due to Webapplication1.dll being installed in wrong folder. Quick fix was to move Webapplication1.DLL from application folder into bin. Refresh the browser and it loads fine.&lt;br /&gt;&lt;br /&gt;The longer term fix is in the setup project, right-click, View, File System - then move the DLL from the web app folder into the bin folder&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531015724450253542-1280782570364586986?l=vbdevnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbdevnotes.blogspot.com/feeds/1280782570364586986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7531015724450253542&amp;postID=1280782570364586986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1280782570364586986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531015724450253542/posts/default/1280782570364586986'/><link rel='alternate' type='text/html' href='http://vbdevnotes.blogspot.com/2008/09/parser-error-message-could-not-load.html' title='Parser Error Message: Could not load type &apos;WebApplication1.Login&apos;'/><author><name>Polka Dot</name><uri>http://www.blogger.com/profile/05084007755551614135</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_ZOZQRTau9dE/SMgyWVKuegI/AAAAAAAAAAM/LdxRT4vPizY/S220/Dawn-patrol.jpg'/></author><thr:total>0</thr:total></entry></feed>
