2013-04-15 15 views
8

Tôi vừa tham gia dự án và cài đặt Microsoft Visual Studio Professional 2012 Phiên bản 11.0.51106.01 và Microsoft SQL Server 2008 R2 trên máy 64 bit.Lỗi 175: Không thể tìm thấy nhà cung cấp cửa hàng được chỉ định trong cấu hình hoặc không hợp lệ

Một thành viên trong nhóm có khả năng để xây dựng các giải pháp từ máy tính của mình, nhưng từ máy của tôi, tôi nhận được lỗi sau:

Lỗi 175: Nhà cung cấp cửa hàng chỉ định không thể được tìm thấy trong cấu hình, hoặc không hợp lệ

Trong tệp .edmx của tôi, tất cả mã giữa các thẻ <edmx:StorageModels></edmx:StorageModels> được đánh dấu cho lỗi. Đoạn mã có liên quan từ đầu tệp là:

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

Khi thực hiện nghiên cứu trên các bài đăng tương tự, những người khác đã đề xuất kiểm tra DbProviderFactories trong tệp 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> 

* Chỉnh sửa: Thêm các DbProviderFactories liên quan cho 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> 

một anh chàng trong nhóm dường như nhớ lại vấn đề này và nó được liên kết với một cấu hình iSeries hoặc thiết lập theo một trong các bản cập nhật cho Sql server của tôi hoặc Visual Studio cài đặt, dựng lên .

Có ai thấy điều này trước đây hoặc có ý tưởng sửa lỗi để tôi có thể xây dựng sạch không?

ĐÁP

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

Khi định dạng mã của tôi tôi gửi cho các thiết lập cấu hình máy tính của tôi, tôi nhận thấy có hai đóng thẻ cho <DbProviderFactories> tôi loại bỏ các <DbProviderFactories/> mà chúng tôi tin là đã được thêm vào sau khi các thiết lập iSeries đã được thêm vào. Sau khi lưu tập tin, tôi khởi động lại máy tính của tôi và xây dựng đã thành công.

Ghi chú bên: Mã của tôi đã xây dựng thành công trong VS 2010 mà không phải thực hiện thay đổi này.

+0

Có gì đó sai ở đây. Bạn phải nhắm mục tiêu ít nhất .NET Framework 4 (EDMX verion là 2 và trên .NET Framework 3.5 chỉ v1 được hỗ trợ) nhưng đồng thời bạn đang xem xét các cài đặt .NET Framework 2.0/3.5. Hãy xem điều này: http://msdn.microsoft.com/en-US/library/dd0w4a2z(v=VS.80).aspx có một vòng lặp đơn giản cho phép bạn hiển thị những gì các nhà cung cấp thực sự đã đăng ký. – Pawel

+0

Cảm ơn bạn đã chỉ ra điều đó.Tôi đã sửa đổi bài đăng gốc để bao gồm DBProviderFactories cho .Net 4.0. – user2283561

Trả lời

1

Trong C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config đoạn đăng ở đó là một không liên quan <DbProviderFactories/> đó gây ra các Error 175.

tập tin của bạn:

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

nên là:

<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> 
Các vấn đề liên quan