Visual studio 2010 Fluent NHibernate不使用已部署的应用程序,但可在visual studio中使用

Visual studio 2010 Fluent NHibernate不使用已部署的应用程序,但可在visual studio中使用,visual-studio-2010,nhibernate,fluent-nhibernate,development-environment,setup-project,Visual Studio 2010,Nhibernate,Fluent Nhibernate,Development Environment,Setup Project,我正在工作的一个项目是使用Fluent Nhibernate和Nhibernate将我们的应用程序连接到数据库 当处于“发布模式”或“调试模式”时,此应用程序在visual studio中工作正常,但一旦您通过.msi文件安装该应用程序,就会出现以下错误: “NHibernate.Cfg.Configuration”的类型初始值设定项引发了 例外情况“ 通常,当我们遇到这个错误时,是因为映射错误或者连接字符串错误,但这里的情况并非如此。就像我上面提到的,这个项目在VisualStudio中运行得

我正在工作的一个项目是使用Fluent Nhibernate和Nhibernate将我们的应用程序连接到数据库

当处于“发布模式”或“调试模式”时,此应用程序在visual studio中工作正常,但一旦您通过.msi文件安装该应用程序,就会出现以下错误:

“NHibernate.Cfg.Configuration”的类型初始值设定项引发了 例外情况“

通常,当我们遇到这个错误时,是因为映射错误或者连接字符串错误,但这里的情况并非如此。就像我上面提到的,这个项目在VisualStudio中运行得很好,但不是安装的版本。.dll在所有实例中都是相同的版本

这真的让我陷入了一个循环,我希望有人有任何想法,或者曾经经历过这个问题

谢谢,如果您需要我这边的任何数据,请告诉我

更新:

实际上可以通过附加到进程来运行(我安装了调试版本)。因此,我能够看到一个内部异常:

无法加载文件或程序集log4net,版本=1.2.10.0, 区域性=中性,PublicKeyToken=1b44e1d426115821'或其 依赖项。定位的程序集的清单定义不存在 匹配程序集引用。(HRESULT中的异常: 0x8013100)“字符串

我们在应用程序中使用了NHibernate和Crystal reports for vs2010,在安装项目中有两个log4net参考。两者都是v1.2.10,但都有不同的公钥令牌

我相信我解决了这个问题

正如我提到的,该项目将在VisualStudio中运行,但在安装时不会运行。所以今天早上我注意到在我的DetectedDependencies文件夹中有两个“log4net.dll”对象。两个log4net.dll都是相同的版本“1.2.10”,但都使用不同的公钥令牌。我觉得这很奇怪。我有相同的版本,但都有不同的加密密钥

无论如何,我排除了两个DLL中的一个,我再次安装了该项目,现在它正在运行。我希望这不会影响任何事情。所以这个问题并没有完全解决,但就目前而言,它是有效的,这正是我所需要的

可供参考的两个关键点是: 692FBEA5521E1304 1B44E1D426115821


感谢诺瑟德夫和肖恩·库特里尔的支持。我想我不会回答这个问题,因为这不是理想的解决方案。

公钥在1.2.9和1.2.10之间更改(事实上1.2.11有两个密钥…)你确定没有1.2.9和1.2.10吗?如果两者都是.10,那么出于可比性的原因,可能有人使用旧密钥手工构建了1.2.10


我们找到的解决这个问题的唯一方法是找到第三方工具的版本,这些版本同意使用哪个log4net公钥版本。到目前为止,我们只在Windsor 3上遇到过这个问题(它似乎使用1.2.11新的公钥),但我希望随着我们进入一个阶段,一些项目升级到1.2.11(新密钥),而其他项目仍然使用1.2.9或1.2.10或1.2.11旧密钥,这个问题会变得很常见

我也有同样的问题,但通过以下步骤可以解决: *删除Nhibernate、fluent Nhibernate和iesiCollection等的所有引用。 *在Visual studio 2012中从NuGate添加FluentNHibernate的新引用,它将自动添加其所有依赖项,如NHibernate等。
*这样程序集就不会冲突。

您确定所有依赖项都存在吗?像NHibernate和Iesi。收藏?你也能记录内部异常吗?是的,我刚得到内部异常,这是一个log4net问题。仍然不确定如何修复它。我在stack上的其他帖子中看到很多人对此有疑问。我现在正在浏览那些帖子,我知道可能是log4net让我头疼。是的,我100%确定我现在正在看安装项目。我希望它是这样的情况下,我有两个版本,但都是相同的。我们有NHibernate v2.1.2.4000,它使用log4net v1.2.10和CrystalDecisions.ReportAppServer.Prompting,它使用log4net v1.2.10。两个log4net都在安装项目中,一个在GAC中,另一个在我们设置的库文件夹中。两者都有不同的公钥令牌。哦,我对不得不使用Crystal表示哀悼;)