尝试将我的 ASP.NET MVC 项目部署到 AppHarbor 时出现上述错误:这是堆栈跟踪:
[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +77
System.Data.Entity.Infrastructure.SqlCeConnectionFactory.CreateConnection(String nameOrConnectionString) +56
System.Data.Entity.Internal.LazyInternalConnection.Initialize() +309
System.Data.Entity.Internal.LazyInternalConnection.get_ProviderName() +13
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +330
System.Data.Entity.Internal.LazyInternalContext.MarkDatabaseInitialized() +16
System.Data.Entity.Database.Initialize(Boolean force) +24
TolMobile.Data.Context.TolTestDbContext.InitialiseDatabase(IDatabaseInitializer`1 strategy) in d:\temp\wepseqgv.iiu\input\TolMobile.Data\Context\TolTestDbContext.cs:21
TolMobile.MvcApplication.Application_Start() in d:\temp\wepseqgv.iiu\input\TolMobile\Global.asax.cs:63
我搜索了高低,并尝试将所需的 SQLCe 依赖项添加到启用了“LocalCopy”的项目中,但仍然没有运气。如果丢失的程序集(如果这是问题)会显示在日志中,那就太好了,这样我就知道出了什么问题。
我认为这绝对是一个大会 GAC 问题。AppHarbor 服务器上的 GAC 缺少一些东西,因为它在我的机器上运行良好。但是我不明白的是,所有依赖项都是通过 NuGet 添加的,并且应该包含在项目中并且是自包含的。为什么这不能在另一台服务器上工作?