2011-11-24 40 views
0

我一直在試圖實現ErikEJ的精彩SqlCe 4.0 Membership Provider,但我遇到了麻煩。我通過EJ提供的文檔得到它的工作。但是......使用ErikEJ的SQL CE會員供應商的奇怪錯誤

我想將源文件抽象爲外部DAL。但我遇到問題。我得到的第一個問題是試圖通過.csproj文件而不是web.config添加對SqlCe的引用。 (我需要這樣做,所以我可以在我的DAL項目中添加相同的引用)(我還需要能夠將本地副本設置爲true,以便在csproj引用中使用它)。所以我做這個....

<assemblies> 
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <!--<add assembly="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>--> 
</assemblies> 

然後在我的項目中添加它...

SqlReference

但是,當我瀏覽到該網站,我收到此錯誤信息:

無法加載對應於版本8482的ADO.NET提供程序的SQL Server Compact 的本機組件。安裝 正確版本的SQL Server Compact。有關更多詳細信息,請參閱知識庫文章974247中的 。

當我指的是KB article它說:

FIX:當您在安裝的32位版本後,運行SQL Server精簡 基於3.5的應用程序,您會收到一條錯誤消息在x64計算機上的SQL Server精簡版3.5 Service Pack 2

而且這就是最新的投擲我。它爲什麼談論3.5?我已經添加了Eric提供者設計的4.0 dll的參考。

我真的很希望有人能幫上忙。也許Erik會閱讀這篇文章:-)

p.s.我也想知道在web.config中添加引用並通過csproj添加引用的區別是什麼。我認爲這是因爲web.config在GAC中查找。但是當我嘗試在visual studio中添加一個引用(到csproj)時,我看不到添加System.Data.SqlServerCe的選項!

我也可以說,當我直接從

C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private 

複製的dll進入我的DAL bin和網站bin和直接在的csproj引用它們我仍然得到同樣的問題。

回答

1

您正在使用專用程序集版本(4.0.0.1) - 聽起來像所部署的站點中缺少所需的非託管DLL文件。你可以看看文件資源管理器,並顯示你看到的。 另外,看到這樣的回答:Can't get sql server compact 3.5/4 to work with ASP .NET MVC 2

+0

嗨埃裏克我跟隨你的鏈接,它的工作。看起來像bascially我需要C:\ Program Files \ Microsoft SQL Server精簡版\ v4.0 \私人文件夾中的myapp \ bin \ x86和myapp \ bin \ amd64文件夾。我發佈了一個新的問題,因爲id喜歡瞭解添加web.config和Csproj之間的區別。這篇文章是http://stackoverflow.com/questions/8268679/what-is-the-difference-between-adding-a-reference-to-a-gac-dll-in-csproj-and-add,謝謝! – Exitos

+0

它不是你所指的相同的dll版本:web.config和4.0.0.1中的4.0.0.0(根據你自己的屏幕截圖) – ErikEJ