【发布时间】:2018-06-05 09:55:52
【问题描述】:
我正在转换为 VS2017 一个遗留项目,它使用数据库连接对话框来收集数据以格式化连接字符串。
下面这行触发了错误:
var dialog = new DataConnectionDialog();
无法加载文件或程序集“Microsoft.Data.ConnectionUI, 版本=0.0.0.0,文化=中性,PublicKeyToken=f4ca07f51760da93' 或 它的依赖项之一。该系统找不到指定的文件。: System.IO.FileNotFoundException:无法加载文件或程序集 'Microsoft.Data.ConnectionUI,版本=0.0.0.0,文化=中性, PublicKeyToken=f4ca07f51760da93' 或其依赖项之一。这 系统找不到指定的文件。文件名: 'Microsoft.Data.ConnectionUI,版本=0.0.0.0,文化=中性, PublicKeyToken=f4ca07f51760da93' 在 Microsoft.Data.ConnectionUI.DataConnectionDialog..ctor() 在 Wings4CloudPackage.Forms.frmNewSolution.btnDatabase_Click(对象 发件人,EventArgs e)
=== 预绑定状态信息 === LOG: DisplayName = Microsoft.Data.ConnectionUI, Version=0.0.0.0, Culture=neutral, PublicKeyToken=f4ca07f51760da93(完全指定)日志:Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/ LOG:初始 PrivatePath = NULL 调用程序集:Microsoft.Data.ConnectionUI.Dialog, 版本=0.0.0.0,文化=中性,PublicKeyToken=f4ca07f51760da93。 === LOG:此绑定在 LoadFrom 加载上下文中开始。警告:将不会在 LoadFrom 上下文中探测本机图像。本机图像只会 在默认加载上下文中进行探测,例如使用 Assembly.Load()。
我已经检查了这条路径:C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/ 并且引用的 Microsoft.Data.ConnectionUI.dll 在那里。
此项目使用以下 nuget 包来显示对话框:DataConnectionDialog (https://www.nuget.org/packages/DataConnectionDialog/1.1.0)
此代码适用于 VS2013,但不适用于 VS2017。
【问题讨论】:
-
你能在 Dependency Walker 中运行吗(使用它而不是调试器)。 www.dependencywalker.com 如果
Microsoft.Data.ConnectionUI.dll需要的文件之一丢失,这应该有助于识别它。 -
尝试启动 Fuslogvw - DLL binding debugger - 并检查 VS 尝试从何处加载 DLL。
标签: c# .net visual-studio-2013 visual-studio-2017 dllimport