Cannot find wrapper assembly for type library “ADODB”

Happy new year and Happy coding!
Using Visual Studio 2022 on Windows 11 with the latest updates to 24H2, started giving the following errors when trying to compile an older project:

The "ResolveComReference" task returned false but did not log an error.
Cannot find wrapper assembly for type library "ADODB". Verify that (1) the COM component is registered correctly and (2) your target platform is the same as the bitness of the COM component. For example, if the COM component is 32-bit, your target platform must not be 64-bit.

So, you Google a bit and find this, but don’t do that!
In my case, the following article helped, or just a comment from it “Mine was resolved by removing the reference to “Microsoft HTML Object Library” and adding it again in the project.“.

  • In solution Explorer, open ‘My Project’
  • Go to the tab ‘References’
  • Find your mentioned library on the top, in my case, ‘Microsoft ActiveX Data Objects 2.8 Library’ with some ‘ADODB.dll’ in a system32 folder.
  • Click the ‘Add’ button, tab COM > Type Libraries, and find your library, it should be checked.
  • UNCHECK it, and OK the popup
  • Repeat: Click the ‘Add’ button, tab COM > Type Libraries, and find your library, now unchecked.
  • CHECK it, and OK the popup
  • Save everything and try to compile again.

That should work.
If not, so sorry, but it did for me…

Have a nice day!


How to encode and decode Base64 in VB.NET

Because sometimes you just need a string with ‘normal characters’ instead of funky ones…

Public Function EncodeBase64(input As String) As String
	Return System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(input))
End Function

Public Function DecodeBase64(input As String) As String
	Return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(input))
End Function

Have a nice day!

Unix timestamp in VB

Okay, remember these date functions?
Here is another one when asked to submit a date/time as a Unix timestamp…

Calculated in seconds from January 1st, 1970 in Visual Basic.

Public Function fncConvertToUnixTimestamp(datDate As DateTime) As Double
    Dim datOrigin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)
    Dim diff As TimeSpan = datDate.ToUniversalTime() - datOrigin
    Return (Math.Floor(diff.TotalSeconds))
End Function

Have a nice day!

Convert between Local Time and UTC or Zulu time

Here is some visual basic code for you!
You receive a ZULU time and want to store it in your local time?

Dim MyZulu As New Date(year,month,day,hr,min,sec,DateTimeKind.Utc)
Dim MyLocal As DateTime = MyZulu.ToLocalTime()

Or is someone or some API asking you for the next format in return, and all you have is a DateTime with your local time in it?

*UTC + offset as (YYYY-MM-DDThh:mm:ss+hh:mm)
Continue reading Convert between Local Time and UTC or Zulu time

System.NullReferenceException: ‘Object reference not set to an instance of an object.’

A happy error while coding in visual basic, vb.net
It is not the line where you get this error, but something that happened before, that made one of your variables invalid and unusable.

Read this. (@ NullReference Exception — Visual Basic)

Continue reading System.NullReferenceException: ‘Object reference not set to an instance of an object.’