Właśnie dołączyłem do projektu i zainstalowałem Microsoft Visual Studio Professional 2012 w wersji 11.0.51106.01 i Microsoft SQL Server 2008 R2 na maszynie 64-bitowej.Błąd 175: Określony dostawca sklepu nie może zostać znaleziony w konfiguracji lub jest nieprawidłowy
Inny członek zespołu jest w stanie zbudować rozwiązanie ze swojej maszyny, ale z mojego komputera pojawia się następujący błąd:
Błąd 175: Określony dostawca sklep nie może znajdować się w konfiguracji, czy nie jest ważny
W moim pliku .edmx cały kod między tagami <edmx:StorageModels></edmx:StorageModels>
jest oznaczony jako błąd. Odpowiedni fragment od początku pliku jest:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
<!-- EF Runtime content -->
<edmx:Runtime>
<!-- SSDL content -->
<edmx:StorageModels>
<Schema Namespace="[NAME].Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
Robiąc badania na podobnych stanowiskach, inni sugerują sprawdzenie DbProviderFactories w pliku machine.config.
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config
<system.data>
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>
* EDIT: Dodano odpowiednie DbProviderFactories dla .NET 4.0 C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config
<system.data>
<DbProviderFactories>
<add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
<DbProviderFactories/>
</system.data>
Kolejny facet w zespole zdaje sobie przypomnieć ten problem i to jest związane z konfiguracją systemu iSeries lub ustawienie w jednej z aktualizacjach My SQL Server i Visual Studio zainstalować .
Czy ktoś to widział wcześniej lub ma pomysł na jego naprawienie, aby uzyskać czystą kompilację?
ODPOWIEDŹ
<system.data>
<DbProviderFactories>
<add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
<DbProviderFactories/>
</system.data>
Podczas formatowania mojego kodu napisałem do ustawień konfiguracyjnych moim komputerze użytkownika, zauważyłem, istnieją dwa znaczniki zamykające dla <DbProviderFactories>
usunąłem <DbProviderFactories/>
które uważamy, że zostały dodane po ustawieniach iSeries zostały dodane. Po zapisaniu pliku zrestartowałem komputer i kompilacja się powiodła.
Nota boczna: Mój kod został pomyślnie zbudowany w VS 2010 bez konieczności dokonywania tej zmiany.
Coś jest nie tak tutaj. Musisz przynajmniej celować w .NET Framework 4 (wersja EDMX to 2 i na platformie .NET Framework 3.5 tylko v1 była obsługiwana), ale jednocześnie patrzysz na ustawienia .NET Framework 2.0/3.5. Spójrz na to: http://msdn.microsoft.com/en-US/library/dd0w4a2z(v=VS.80).aspx jest tam prosta pętla, która pozwala wyświetlać, którzy dostawcy są rzeczywiście zarejestrowani. – Pawel
Dzięki za wskazanie tego.Poprawiłem oryginalny post, aby uwzględnić DBProviderFactories dla .Net 4.0. – user2283561