I tested this using Umbraco 7.5.9 and 7.5.0.
I installed Terratype via Nuget: Install-Package Terratype
Afterwards, I installed Google Maps: Install-Package TerraType.GoogleMapsV3
Both installations were successful.
Once I tried to create my datatype, it said: No Terratype map providers have been installed. Please read the documentation for details on how to install providers
I can see both folders for TerraType and Terratype.GoogleMapsV3 on the App_Plugins folder. Is there anything else I should do? Already did a rebuild on the solution. But nothing happened.
So, I just tested downloading the .zip package from here and installing it through the Umbraco backoffice. Now it works.
No idea why the installation from Nuget did not work.
Sorry Francielle, I've been able to replicate using nuget, and agree there is something wrong going on. The Ajax call is failing with Server Error 500.
I post this reply, to suggest to any others, yes please use the Umbraco package until I have this fixed.
First could you check that the relevant dlls are present in you /bin/ folder. It should be Terratype.dll and depending on which providers you have loaded;Terratype.GoogleMapsV3.dll, Terratype.BingMapsV8.dll or/and Terratype.LeafletV1.dll
Next can you run the following code (I leave it to you to figure out where the best place to execute this code from your Umbraco website, but don't run it on Application or Umbraco startup, allow this is be called after all the Umbraco initialization has happened)
foreach (System.Reflection.Assembly currAssembly in System.AppDomain.CurrentDomain.GetAssemblies())
{
System.Type[] typesInAsm;
try
{
typesInAsm = currAssembly.GetTypes();
}
catch (System.Reflection.ReflectionTypeLoadException ex)
{
typesInAsm = ex.Types;
}
foreach (System.Type type in typesInAsm)
{
if (type == null || !type.IsClass || type.IsAbstract)
{
continue;
}
if (type.IsSubclassOf(typeof(Terratype.Models.Provider)))
{
System.Diagnostics.Debug.WriteLine("Already Loaded: " + type.FullName);
}
}
}
var path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var di = new System.IO.DirectoryInfo(path);
foreach (var file in di.GetFiles("*.dll"))
{
try
{
var currAssembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(file.FullName);
System.Type[] typesInAsm;
try
{
typesInAsm = currAssembly.GetTypes();
}
catch (System.Reflection.ReflectionTypeLoadException ex)
{
typesInAsm = ex.Types;
}
foreach (System.Type type in typesInAsm)
{
if (type == null || !type.IsClass || type.IsAbstract)
{
continue;
}
if (type.IsSubclassOf(typeof(Terratype.Models.Provider)))
{
System.Diagnostics.Debug.WriteLine("Can load: " + type.FullName);
}
}
}
catch (System.BadImageFormatException)
{
// Not a .net assembly - ignore
}
}
And report back what output is generated. It should list all the providers present in your website. If it doesn't we need to figure out why the Terratype assemblies are not loading.
Barring that I have re-introduced a bug, I was hoping this issue had been fixed in Terratype version 1.0.3, where I included even more code to catch those that were running Terratype in slightly stranger environments.
If you have chance, if you can execute the code that was posted in my last comment in this thread (And follow the other advice I posted) and report back, I might be able to fathom what is causing your issue.
But in general on execution of your website, /bin/Terratype.dll tries to access any other dlls present in the /bin/ folder to see if they contain a Terratype Provider. If this process fails due to to it being unable to read and/or execute Terratype.GoogleMaps.dll then you will get the error you describe.
While in a bog standard environment, with standard file access rights given to IIS / IIS Express then this process works perfectly. When it fails it could be for numerous reason, and is hard for me to know why without access or some feedback from your environment.
I would like to give you some information about what I have exactly done, so hopefully it can be more helpful.
First of all, my project is a WebForms project not MVC unfortunately.
Secondly; I have installed Terratype, Terratype.LeafletV1, Terratype.BingMapsV8 and Terratype.GoogleMapsV3 using the nuget package manager, and when I check the project references, I only see Terratype.dll, the others simply doesn't exist as references. When I go to my project's packages folder, I can see all of them installed there.
I can build my solution successfully but again in the umbraco project's bin folder, I can only see Terratype.dll, the others don't exist. It looks like there is a problem with the installation and creating the correct references as far as I see.
And also, as you requested, I have added your code to my project (It has been called after all the Umbraco initialization has happened) and below is how my output looks like - only 2 lines of data;
Installing the package via Umbraco backoffice works fine but I don't want to use that way as I have already experienced lots of problems with some other Umbraco packages if I follow that way. I prefer to use Nuget Package Manager to install Terrabyte(and other components) as a sensible developer.
One more thing; I can see all the folders in App_Plugins folder just as @Francielle described.
Please let me know if you need further assistance. Thank you.
Exception thrown: 'System.Reflection.ReflectionTypeLoadException' in mscorlib.dll
Exception thrown: 'System.Reflection.ReflectionTypeLoadException' in mscorlib.dll
What version of .NET framework are you targeting ? I've just noticed while writing this post that Terratype.dll targets framework 4.5, while the Terratype providers target 4.5.2 (As shown in screenshot) . You will need framework 4.5.2 installed and/or update your website to use Framework 4.5.2 or later. If this is impossible, I can only apologise. I will recreate my providers to target 4.5 in my next release as it wasn't my intention to have them on different frameworks.
FYI: Terratype 1.0.12 has been released and now all providers are using .NET Framework 4.5, so hopefully nobody else should be caught out with this bug again.
Thanks Jonathan for the quick release, that has actually saved me a lot of trouble as the .net framework upgrade for the previous release created some problems with some other umbraco packages - none of yours.
I can confirm that Version 1.0.12 works great with .NET Framework 4.5.
Hi Johnatan, we ran into other issue. We have your map and some form under it, on dragging map, or just holding left mouse, whole page falls apart. Here's the image. It's definitly some thing with map, because if you disable some stuff (while inspecting page) we managed to get that page doesn't fall aparat unless map is loading new data. Something to do with "will-transform". Any change you can look up to it and find some fix?
Could you create a new thread for this, as I don't want to keep adding to a thread about missing providers, with an issue with map displaying. This will help others later when searching for answers.
I do need a lot more information, as you can imagine, this error is coming from Google Maps, hence on the face of it not my code, though I might be able to find some sort of hack.
So what browser are you using, including version.
Version of Google maps is being loaded; 3.27 is the latest stable (It will tell you in the dev section which version of google maps is loaded)
You mention a form that is located below the map, is this a content node or the grid view, what is this form that you mention. Umbraco Forms ? Does this bug happen when the form is removed.
I need to replicate as much of your situation as possible, because as it stands, your image is missing any context.
So if you can, please make a new thread and if you can provide as much information so that I can replicate your situation, I might be able to help.
No providers available
Hi,
I tested this using Umbraco 7.5.9 and 7.5.0. I installed Terratype via Nuget: Install-Package Terratype Afterwards, I installed Google Maps: Install-Package TerraType.GoogleMapsV3 Both installations were successful.
Once I tried to create my datatype, it said: No Terratype map providers have been installed. Please read the documentation for details on how to install providers
I can see both folders for TerraType and Terratype.GoogleMapsV3 on the App_Plugins folder. Is there anything else I should do? Already did a rebuild on the solution. But nothing happened.
Thanks!
So, I just tested downloading the .zip package from here and installing it through the Umbraco backoffice. Now it works. No idea why the installation from Nuget did not work.
Sorry Francielle, I've been able to replicate using nuget, and agree there is something wrong going on. The Ajax call is failing with Server Error 500.
I post this reply, to suggest to any others, yes please use the Umbraco package until I have this fixed.
Just to give an update. Have fixed this issue with the nuget release in version 1.0.3
Hi Jonathan. I'm using the 1.0.10 nuget release, but am seeing the same problem.
Hi Johnathan, Im also getting the same issue. Installed both the Terratype and the google map provider. Thanks.
Hi Rahul,
First could you check that the relevant dlls are present in you /bin/ folder. It should be Terratype.dll and depending on which providers you have loaded;Terratype.GoogleMapsV3.dll, Terratype.BingMapsV8.dll or/and Terratype.LeafletV1.dll
Next can you run the following code (I leave it to you to figure out where the best place to execute this code from your Umbraco website, but don't run it on Application or Umbraco startup, allow this is be called after all the Umbraco initialization has happened)
And report back what output is generated. It should list all the providers present in your website. If it doesn't we need to figure out why the Terratype assemblies are not loading.
Cheers
Jonathan
Hello Jonathan,
Any chance you have fixed this problem please?
I see the same problem with the following configuration:
Umbraco version 7.4.3 assembly: 1.0.5948.18141 Terratype 1.0.11 Terratype.GoogleMapsV3 1.0.11
Thank you
Hi Nurhak,
Barring that I have re-introduced a bug, I was hoping this issue had been fixed in Terratype version 1.0.3, where I included even more code to catch those that were running Terratype in slightly stranger environments.
If you have chance, if you can execute the code that was posted in my last comment in this thread (And follow the other advice I posted) and report back, I might be able to fathom what is causing your issue.
But in general on execution of your website, /bin/Terratype.dll tries to access any other dlls present in the /bin/ folder to see if they contain a Terratype Provider. If this process fails due to to it being unable to read and/or execute Terratype.GoogleMaps.dll then you will get the error you describe.
While in a bog standard environment, with standard file access rights given to IIS / IIS Express then this process works perfectly. When it fails it could be for numerous reason, and is hard for me to know why without access or some feedback from your environment.
Cheers
Jonathan
Hello @Jonathan,
I would like to give you some information about what I have exactly done, so hopefully it can be more helpful.
First of all, my project is a WebForms project not MVC unfortunately.
Secondly; I have installed Terratype, Terratype.LeafletV1, Terratype.BingMapsV8 and Terratype.GoogleMapsV3 using the nuget package manager, and when I check the project references, I only see Terratype.dll, the others simply doesn't exist as references. When I go to my project's packages folder, I can see all of them installed there.
I can build my solution successfully but again in the umbraco project's bin folder, I can only see Terratype.dll, the others don't exist. It looks like there is a problem with the installation and creating the correct references as far as I see.
And also, as you requested, I have added your code to my project (It has been called after all the Umbraco initialization has happened) and below is how my output looks like - only 2 lines of data;
Installing the package via Umbraco backoffice works fine but I don't want to use that way as I have already experienced lots of problems with some other Umbraco packages if I follow that way. I prefer to use Nuget Package Manager to install Terrabyte(and other components) as a sensible developer.
One more thing; I can see all the folders in App_Plugins folder just as @Francielle described.
Please let me know if you need further assistance. Thank you.
Hi Nurhak,
That Nuget doesn't sound right.
What version of .NET framework are you targeting ? I've just noticed while writing this post that Terratype.dll targets framework 4.5, while the Terratype providers target 4.5.2 (As shown in screenshot) . You will need framework 4.5.2 installed and/or update your website to use Framework 4.5.2 or later. If this is impossible, I can only apologise. I will recreate my providers to target 4.5 in my next release as it wasn't my intention to have them on different frameworks.
Have you got the latest Nuget. Version 3.4.4.
Check that you have all four Terratype packages installed (As shown in screenshot)
Cheers
Jonathan
Thanks for the great answer Jonathan!
My problem was .NET Framework version. After the framework upgrade, it works like a charm!
FYI: Terratype 1.0.12 has been released and now all providers are using .NET Framework 4.5, so hopefully nobody else should be caught out with this bug again.
Thanks Jonathan for the quick release, that has actually saved me a lot of trouble as the .net framework upgrade for the previous release created some problems with some other umbraco packages - none of yours.
I can confirm that Version 1.0.12 works great with .NET Framework 4.5.
Cheers.
Hi Johnatan, we ran into other issue. We have your map and some form under it, on dragging map, or just holding left mouse, whole page falls apart. Here's the image. It's definitly some thing with map, because if you disable some stuff (while inspecting page) we managed to get that page doesn't fall aparat unless map is loading new data. Something to do with "will-transform". Any change you can look up to it and find some fix?
Hi Anamarija
Could you create a new thread for this, as I don't want to keep adding to a thread about missing providers, with an issue with map displaying. This will help others later when searching for answers.
I do need a lot more information, as you can imagine, this error is coming from Google Maps, hence on the face of it not my code, though I might be able to find some sort of hack.
I need to replicate as much of your situation as possible, because as it stands, your image is missing any context.
So if you can, please make a new thread and if you can provide as much information so that I can replicate your situation, I might be able to help.
Cheers
Jonathan
Hi, thanks for fast replay! We managed to fix it so it looks good on our page. I created topic as you said, in case someone else runs into it. https://our.umbraco.org/forum/extending-umbraco-and-using-the-api//85393-terratype-packgage-css-issue
is working on a reply...