2013-04-15 11 views
8

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.

+0

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

+0

Dzięki za wskazanie tego.Poprawiłem oryginalny post, aby uwzględnić DBProviderFactories dla .Net 4.0. – user2283561

Odpowiedz

1

W C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config fragment pisał istnieje obca <DbProviderFactories/> który jest przyczyną Error 175.

Plik:

<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> 

Powinno być:

<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> 
</system.data> 
Powiązane problemy