Dapper 因 .net 4.6 失败 - 无法加载文件或程序集

Dapper fails with .net 4.6 - Could not load file or assembly

我有一个针对 .net 4.6 和 Dapper 1.50.4 的 WPF/MVVM Light 应用程序 我正在使用 Visual Studio Pro 2017 开发应用程序

这个应用程序是工作的,但我得到了一台新电脑,并将这个应用程序的开发转移到了新电脑上。当我尝试在我的新计算机上 运行 此应用程序时,出现以下错误:

System.IO.FileLoadException: 'Could not load file or assembly 'Dapper, Version=1.50.4.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)'

我试过的

  1. 我可以确认 dapper.dll 在 projectRoot/bin/debug 目录中
  2. 我有 运行 Assembly Binding Log Viewer 并且 运行 我的应用程序只有一个错误,但它不在 dapper.dll, 它在 system.windows.dll:
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Users\jorda\...\bin\Debug\FTC_Application.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
 (Fully-specified)
LOG: Appbase = file:///C:/Users/jorda/.../bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = FTC_Application.exe
Calling assembly : GalaSoft.MvvmLight, Version=5.3.0.19026, Culture=neutral, PublicKeyToken=e7570ab207bcb616.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\jorda\...\bin\Debug\FTC_Application.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Users/jorda/.../bin/Debug/System.Windows.DLL.
LOG: Attempting download of new URL file:///C:/Users/jorda/.../bin/Debug/System.Windows/System.Windows.DLL.
LOG: Attempting download of new URL file:///C:/Users/jorda/.../bin/Debug/System.Windows.EXE.
LOG: Attempting download of new URL file:///C:/Users/jorda/.../bin/Debug/System.Windows/System.Windows.EXE.
LOG: All probing URLs attempted and failed.
  1. 我已经卸载并重新安装了 dapper 的 NuGet 包
  2. 清除了我项目中的 obj 文件夹以强制重建
  3. 该应用程序存在于一个驱动器文件夹中,因此我认为同步过程可能已锁定文件,因此我禁用了一个驱动器,但这并没有解决问题。
  4. 显然重新启动Visual Studio 反复
  5. 正在更新到最新版本的 MVVM light - 没有变化

显然与将此解决方案移动到另一台计算机有关,但我不确定在哪里可以找到它。

问题

谁能帮我弄清楚为什么在我的项目中调用 dapper 时会出现这个错误,或者帮我解决这个问题?

提前致谢

所以我没有意识到有一个 Strongly-Named 和未命名的 dapper 版本。事实上,我对签名程序集了解不多。

解决方案:

  1. 删除普通的 Dapper NuGet 包
  2. 安装 Dapper.StrongName NuGet 包。