2011-11-24 37 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