pdonovan wrote:
Yes, I had to run the installer. Before that I got an exception at the point it tried to scan the Postgres database. I forget exactly, but it was something along the lines of a “not found” exception. I’ll try to reproduce it tomorrow.
No, it's my fault, I assumed we added the npgsql provider to the driver in 5.8, but that was in 5.9. So in 5.8 you still have to install the MSI one. In v5.9 we reference a nuget package and use it directly so you don't need to install the msi one.
Does the llblgen installer do anything to register the driver as being in a particular location? I copy the installed files into git, so I’m not running the designer from the original install location.
In 5.8, it pulls the npgsql provider from the DbProviderFactories. This is a central construct where DbProviderFactory instances are registered (this is done in the machine.config file of netfx in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config.) Since a certain v5.x version of npgsql they introduced a breaking change so it didn't run anymore on netfx and they stopped releasing the msi installer because of it. The msi installer registers the npgsql dll in the machine.config file of .netfx so DbProviderFactories knows where it's located and any app requesting the factory can load it.
The dll is in the GAC, so it's pulled from there.