2011-05-14 35 views
3

我刚将硬盘和操作系统从XP更改为Win7。 之前我的源代码是在D:驱动器,现在他们在F:,在相同的文件夹结构下。将项目移动到其他硬盘后的Dll问题

问题在于FluentNhibernate配置。我得到以下InvalidOperationException异常堆栈跟踪:

at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 115 
    at TSI_Manager.FNH_Manager.CreateSessionFactory() in F:\..... 

正如你所看到的,它试图访问d: ..我不知道到底是什么尝试,虽然访问的内容。但从我的项目参考看,所有参考(系统...除外)都是F:,并设置为Copy Local = True

那么还是指什么D:?我错过了哪些步骤?

干杯!


编辑: 异常详细信息:

System.InvalidOperationException was unhandled 
    Message=An error occurred creating the form. See Exception.InnerException for details. The error is: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail. 
    Source=TSI Manager 
    StackTrace: 
     at TSI_Manager.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 190 
     at TSI_Manager.My.MyProject.MyForms.get_MainForm() 
     at TSI_Manager.My.MyApplication.OnCreateMainForm() in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\My Project\Application.Designer.vb:line 35 
     at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() 
     at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() 
     at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) 
     at TSI_Manager.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 
     at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: FluentNHibernate.Cfg.FluentConfigurationException 
     Message=An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail. 
     Source=FluentNHibernate 
     StackTrace: 
      at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 115 
      at TSI_Manager.FNH_Manager.CreateSessionFactory() in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\DAL\FnhManager.vb:line 43 
      at TSI_Manager.FNH_Manager.ConfigureSessionFactory(String connectionStr) in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\DAL\FnhManager.vb:line 18 
      at TSI_Manager.MainBL.InitializeDatabase() in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\Generic\MainBL.vb:line 174 
      at TSI_Manager.MainBL..ctor() in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\Generic\MainBL.vb:line 92 
      at TSI_Manager.MainForm..ctor() in F:\My Jotta\VB\Projects VS2010\IB API Projects\9.64.16\ClientManager\v0004 Changing ActiveUser\TSI Manager\GUI\Forms\MainForm.vb:line 6 
     InnerException: NHibernate.HibernateException 
      Message=Could not create the driver from NHibernate.Driver.SQLite20Driver, NHibernate, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4. 
      Source=NHibernate 
      StackTrace: 
       at NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary`2 settings) in d:\CSharp\NH\nhibernate\src\NHibernate\Connection\ConnectionProvider.cs:line 116 
       at NHibernate.Connection.ConnectionProvider.Configure(IDictionary`2 settings) in d:\CSharp\NH\nhibernate\src\NHibernate\Connection\ConnectionProvider.cs:line 64 
       at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary`2 settings) in d:\CSharp\NH\nhibernate\src\NHibernate\Connection\ConnectionProviderFactory.cs:line 50 
       at NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary`2 properties) in d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\SettingsFactory.cs:line 83 
       at NHibernate.Cfg.Configuration.BuildSettings() in d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:line 1687 
       at NHibernate.Cfg.Configuration.BuildSessionFactory() in d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:line 1239 
       at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 108 
      InnerException: System.Reflection.TargetInvocationException 
       Message=Exception has been thrown by the target of an invocation. 
       Source=mscorlib 
       StackTrace: 
         at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) 
         at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) 
         at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) 
         at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
         at NHibernate.Bytecode.ActivatorObjectsFactory.CreateInstance(Type type) in d:\CSharp\NH\nhibernate\src\NHibernate\Bytecode\ActivatorObjectsFactory.cs:line 9 
         at NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary`2 settings) in d:\CSharp\NH\nhibernate\src\NHibernate\Connection\ConnectionProvider.cs:line 107 
       InnerException: System.ArgumentException 
         Message=Unable to find the requested .Net Framework Data Provider. It may not be installed. 
         Source=System.Data 
         StackTrace: 
          at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 
          at NHibernate.Driver.ReflectionBasedDriver..ctor(String providerInvariantName, String driverAssemblyName, String connectionTypeName, String commandTypeName) in d:\CSharp\NH\nhibernate\src\NHibernate\Driver\ReflectionBasedDriver.cs:line 49 
          at NHibernate.Driver.SQLite20Driver..ctor() in d:\CSharp\NH\nhibernate\src\NHibernate\Driver\SQLite20Driver.cs:line 28 
         InnerException: 

回答

1

它实际上没有试图访问d:(只要我们可以看到) - 它只是认为这就是对BuildSessionFactory源是。如果你想解决这个问题,你可以自己重建FluentNHibernate,但我不认为它是问题的根源。

看看异常的消息是什么 - 这可能会提供更多信息。

+0

我希望它告诉我更多,但它只是给出了一个标准的消息,我得到了几乎所有类型的流畅配置的:

看来,可以从所获得的SQLite的供应商的最新版本错误:消息是:创建表单时发生错误。有关详细信息,请参阅Exception.InnerException。错误是:创建SessionFactory时使用了无效或不完整的配置。请参阅PotentialReasons集合和InnerException以获取更多详细信息。 – bretddog 2011-05-14 08:38:34

+0

@ bretddog:那么这比你之前展示的要多得多。建议下一步显然是查看InnerException和PotentialReasons集合。是你做的吗? – 2011-05-14 08:41:11

+0

好的,我必须说我不擅长阅读异常细节。我上面张贴了剪贴板副本。所以,如果它给你一些提示,我可以学习吗? PotentialReasons说Count = 0,不知道这是指什么? – bretddog 2011-05-14 08:53:12

0

我认为问题的关键是与消息的InnerException:

无法找到所需的.NET Framework数据提供。它可能没有安装。

看起来您需要在您的新机器上安装相关数据提供程序到GAC,或确保在您的项目中正确引用了它。

http://sqlite.phxsoftware.com/

+0

干杯,似乎是如此。这里选择正确的安装选项是什么:http://img15.imageshack.us/img15/9645/screenshot2011051402411.png? – bretddog 2011-05-14 09:46:36

相关问题