error 0169: All SSDL artifacts must target the same provider

error 0169: All SSDL artifacts must target the same provider

Postby asj » Fri 16 Sep 2011 08:34

Hi guys

I am receiving the error mentioned in topic. The full details are:

Schema specified is not valid. Errors:
error 0194: All artifacts loaded into an ItemCollection must have the same version. Multiple versions were encountered.
Devart.Data.PostgreSql.Entity.StoreSchemaDefinition.ssdl(2,81) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken 'PostgreSQL' is different from 'PostgreSql' that was encountered earlier.


My Entity Framework Model is located in a seperate Assembly (Data.dll) and it is used from my asp.net MVC application.
My WebApp has a reference to Data.dll. It worked fine until I decided to set Copy Local to true on the reference to Devart.Data.PostgreSql.Entity in the WebApp. For some reason, the dll is behaving differently when located in the bin folder than when it is located in the GAC. I do need the dll to be copied into the bin folder as I want to deploy to a production server without installing dotConnect on it.

Do anybody have a clue to what i am doing wrong here?

Kind regards,
Anders.
asj
 
Posts: 8
Joined: Fri 16 Sep 2011 08:05

Postby asj » Fri 16 Sep 2011 10:07

I just upgraded to the newest version of dotConnect for Postgres (v. 5.50).
The Exception text is a lot more verbose now, but i think it all relates to the same issue.
Note that I only get the error on my developer machine when i set Copy Local = True for reference "Devart.Data.PostgreSql.Entity". When False, it works just fine both from my WebApp and a Windows Form app have a reference to Data.dll.

Schema specified is not valid. Errors:
error 0194: All artifacts loaded into an ItemCollection must have the same version. Multiple versions were encountered.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinitionVersion3.ssdl(2,81) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken 'PostgreSQL' is different from 'PostgreSql' that was encountered earlier.
error 0194: All artifacts loaded into an ItemCollection must have the same version. Multiple versions were encountered.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(2,81) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken 'PostgreSQL' is different from 'PostgreSql' that was encountered earlier.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(3,7) : error 0019: The EntityContainer name must be unique. An EntityContainer with the name 'Schema' is already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(546,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.Table' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(556,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.TableColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(582,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.View' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(594,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(620,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.Function' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(645,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.Procedure' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(655,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.Parameter' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(679,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.Constraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(691,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.CheckConstraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(699,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ConstraintColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(708,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ForeignKeyConstraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(717,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ForeignKey' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(728,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewConstraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(743,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.TableTableConstraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(756,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ConstraintConstraintColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(769,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ConstraintForeignKey' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(782,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.FromForeignKeyColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(795,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ToForeignKeyColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(808,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.TableTableColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(821,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewViewColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(834,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.FunctionFunctionParameter' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(847,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ProcedureProcedureParameter' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(860,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewViewConstraint' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(873,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewConstraintConstraintColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(886,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ViewConstraintForeignKey' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(899,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.FromForeignKeyViewColumn' was already defined.
Devart.Data.PostgreSql.Entity.ProviderManifest.StoreSchemaDefinition.ssdl(912,8) : error 0019: Each type name in a schema must be unique. Type name 'dotConnect for PostgreSQL.ToForeignKeyViewColumn' was already defined.
asj
 
Posts: 8
Joined: Fri 16 Sep 2011 08:05

Postby Shalex » Fri 16 Sep 2011 15:47

Are you using Devart Entity Model (*.edml)?

Please open your model with XML Editor and change manually the value of ProviderManifestToken: 'PostgreSql' -> 'PostgreSQL'.

This issue will be fixed in the next build of Entity Developer.
Shalex
Devart Team
 
Posts: 7774
Joined: Thu 14 Aug 2008 12:44

Postby asj » Sun 18 Sep 2011 10:17

Hello Shalex,

Thank you for your suggestion, unfortunately it does not seem to make a difference. I am starting to believe that the problem is not related to my model, as the error only occurs when Devart.Data.PostgreSql.Entity is available in the bin directory of my webapp. There is no problem when it is loaded from the GAC.

A workaround could be to run the dotConnect installer on the target machine, but Devart.Data.PostgreSql.Entity is not included with the minimal install that is the only install allowed at production server as per your license. "Support for ADO.NET Entity Framework" needs to be included as well.

Cheers,
Anders
asj
 
Posts: 8
Joined: Fri 16 Sep 2011 08:05

Postby Shalex » Mon 19 Sep 2011 13:01

asj wrote:Thank you for your suggestion, unfortunately it does not seem to make a difference. I am starting to believe that the problem is not related to my model, as the error only occurs when Devart.Data.PostgreSql.Entity is available in the bin directory of my webapp. There is no problem when it is loaded from the GAC.

Please clear your bin folder, re-add the reference to Devart.Data.PostgreSql.Entity.dll v 5.50.214 from the corresponding folder (%ProgramFiles%\Devart\dotConnect\PostgreSQL\Entity\EF1\ or ...\EF4) depending on the Entity Framework version you are working with. In the debug mode when the error occurs, navigate to the Debug > Windows > Assemblies window of Visual Studio and make sure that Devart.Data.PostgreSql.Entity.dll of the corresponding version is loaded to the process of your application.

asj wrote:A workaround could be to run the dotConnect installer on the target machine, but Devart.Data.PostgreSql.Entity is not included with the minimal install that is the only install allowed at production server as per your license. "Support for ADO.NET Entity Framework" needs to be included as well.

We are investigating the possibility to implement command line keys for our installation package to install only EF runtime (without design time) in the deployment environment. As a temporary solution, install dotConnect for PostgreSQL in the following way in your production:
Code: Select all
dcpostgresql550pro.exe /TYPE=CUSTOM /COMPONENTS="Entity" /VERYSILENT /NOICONS
Shalex
Devart Team
 
Posts: 7774
Joined: Thu 14 Aug 2008 12:44

Postby asj » Tue 20 Sep 2011 11:45

I am unable to locate the Assemblies windows as per your instructions. I assume this is related to me running visual studio Express?
I have tried to add the reference as you describe, but it makes no difference.

/Anders
asj
 
Posts: 8
Joined: Fri 16 Sep 2011 08:05

Postby Shalex » Thu 22 Sep 2011 11:02

1. It seems like Visual Studio Express doesn't include the Debug > Windows > Modules menu (misprint in my previous post: "Modules" should be instead of "Assemblies").
2. Is your project type WebSite or ASP.NET Web Application?
3. Is dotConnect for PostgreSQL installed (or was ever installed before) on your workstation where the problem with loading Devart.Data.PostgreSql.Entity.dll persists?

We cannot reproduce the issue at the moment.
Shalex
Devart Team
 
Posts: 7774
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect for PostgreSQL