当我尝试运行调用我创建的Workflow 4活动的控制台程序时,出现以下错误。请注意,从单元测试执行或嵌入到另一个工作流程中时,工作流程会编译并运行时没有问题。
无法加载文件或程序集 “Microsoft.Practices.EnterpriseLibrary.Logging.Database, PublicKeyToken = 31bf3856ad364e35'或 其中一个依赖项。系统 找不到指定的文件。
我正在使用EnterpriseLibrary 5.0来记录和连接字符串。
我注意到程序集的路径如下:
C:\ Program Files(x86)\ Microsoft 企业图书馆 5.0 \宾\ Microsoft.Practices.EnterpriseLibrary。*
查看程序集绑定日志是 请参阅以下内容:
*装配活页夹日志条目(17/03/2011 @ 15:32:48)*
操作失败。结果:hr = 0x80070002。系统找不到指定的文件。
装配管理器从以下位置加载: C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll 运行可执行文件 C:\开发\工作\ EquinoxeAISManagementSystemWorkflow \ EquinoxeAISManagementSystemWorkflow.FeedManager \ BIN \调试\ EquinoxeAISManagementSystemWorkflow.FeedManager.vshost.exe ---详细的错误日志如下。
===预绑定状态信息===日志:用户= EQUINOXEAIS \ pmckee日志: DisplayName = Microsoft.Practices.EnterpriseLibrary.Logging.Database, 版本= 5.0.414.0,文化=中立, 公钥= 31bf3856ad364e35 (完全指定)LOG:Appbase = 文件:/// C:/Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/ 日志:初始PrivatePath = NULL日志: Dynamic Base = NULL LOG:Cache Base = NULL LOG:AppName = EquinoxeAISManagementSystemWorkflow.FeedManager.vshost.exe 召集程序集: EquinoxeAISManagementSystemWorkflow.ActivityLibrary, 版本= 1.0.0.0,文化=中立,
公钥=空。
日志:此绑定在默认加载时启动 上下文。日志:没有申请 找到配置文件。日志:使用 主机配置文件:日志:使用 来自的机器配置文件 C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中。 日志:政策后参考: Microsoft.Practices.EnterpriseLibrary.Logging.Database, 版本= 5.0.414.0,文化=中立, PublicKeyToken = 31bf3856ad364e35日志: GAC Lookup没有成功。日志: 试图下载新的URL 文件:/// C:/Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database.DLL。 日志:尝试下载新网址 文件:/// C:/Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database/Microsoft.Practices.EnterpriseLibrary.Logging.Database.DLL。 日志:尝试下载新网址 文件:/// C:/Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database.EXE。 日志:尝试下载新网址 文件:/// C:/Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database/Microsoft.Practices.EnterpriseLibrary.Logging.Database.EXE。 日志:尝试的所有探测URL和 失败。
我已尝试以下方法解决此问题: - 为所有受到重视的EnterpriseLibrary声明将“特定版本”设置为False - 再次使用EnterpriseLibrary配置工具重新创建app.config(并一次又一次:( - 删除所有引用程序集并逐个添加它们。
如果有人有关于如何调试此问题的进一步指示,我将非常感激.....谢谢!
答案 0 :(得分:1)
我看到三个可能的问题......
C:\Windows\Microsoft.NET\Framework64\
),是Microsoft.Practices.EnterpriseLibrary.Logging.Database
x86还是x64? (从未尝试这样做,因此我不确定是否可以这样做)C:/Development/Work/[snip]/bin/Debug
中,以便融合加载程序找到它。 Fusion不会在每个目录下查找。*此行为取决于使用部分绑定在运行时加载程序集的方式,即不使用程序集的强名称。