2011-05-14 2 views
3

Je viens de changer le disque dur et le système d'exploitation de XP à Win7. Avant mon code source était sur un D: lecteur, maintenant ils sont sur F:, sous la même structure de dossiers.Dll problème après le déplacement du projet vers d'autres harddrive

Le problème est avec une configuration FluentNhibernate. Je reçois le InvalidOperationException StackTrace suivant:

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:\..... 

Comme vous pouvez le voir, il tente d'accéder D: .. Je ne sais pas exactement ce qui tente d'accéder à ce bien. Mais en regardant dans mes références de projet, toutes les références (sauf System ...) sont à F:, et mis à Copie locale = vrai.

Alors qu'est-ce qui se réfère encore à D:? Et quelles étapes ai-je raté?

bravo!


EDIT: Détails Exception:

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: 

Répondre

1

Il ne cherche pas à accéder réellement D: (pour autant que nous pouvons voir) - il lui paraît juste c'est là la source de buildSessionFactory est. Vous pouvez reconstruire FluentNHibernate vous-même si vous voulez corriger cela, mais je ne pense pas que ce soit la source du problème. Jetez un oeil à ce que le message de l'exception est - qui est susceptible de donner plus d'informations.

+0

Je souhaite qu'il m'a dit plus, mais il ne donne qu'un message standard que je reçois pour presque tous les types de configuration couramment errors: Message is: Une erreur s'est produite lors de la création du formulaire. Voir Exception.InnerException pour plus de détails. L'erreur est: Une configuration non valide ou incomplète a été utilisée lors de la création d'une SessionFactory. Vérifiez la collection PotentialReasons et InnerException pour plus de détails. – bretddog

+0

@bretddog: Eh bien c'est beaucoup plus que ce que vous avez montré auparavant. La prochaine étape est évidemment de regarder la collection InnerException et la collection PotentialReasons, comme suggéré. As-tu fais ça? –

+0

ok, je dois dire que je ne suis pas très habile à lire les détails de l'exception. J'ai posté la copie du presse-papiers ci-dessus. Donc, si cela vous donne quelques indices, je pourrais peut-être apprendre? PotentialReasons dit Count = 0, je ne sais pas à quoi cela fait référence? – bretddog

0

Je pense que la question clé est la InnerException avec le message:

Impossible de trouver le Framework .Net demandé fournisseur de données. Il pourrait ne pas être installé.

Il semble que vous ayez besoin d'installer le fournisseur de données approprié sur le GAC de votre nouvelle machine ou de vous assurer qu'il est correctement référencé dans votre projet.

Il semble que la dernière version du fournisseur de données SQLite peut être obtenu à partir de:

http://sqlite.phxsoftware.com/

+0

Cheers, semble tellement. Quelles seraient les bonnes options d'installation à choisir ici: http://img15.imageshack.us/img15/9645/screenshot2011051402411.png? – bretddog

Questions connexes