问题描述
我有一个WPF应用程序,可以在Windows 10 x 64开发计算机和基本Windows 10 x64 VM上正常运行。当放在客户计算机上时,出现异常提示:
DispatcherUnhandledEvent: Could not load file or assembly 'CLRWrapper.dll' or one of its dependencies. The specified module could not be found.
依赖项遍历显示以下依赖项:
-
VCRUNTIME140D.DLL
-
ucrtbased.dll
-
MSVCP140D.dll 由于失踪。将这些DLL中的任何一个放置到System32,SysWOW64或应用程序的根文件夹中都会导致以下错误:
无法加载文件或程序集“ CLRWrapper.dll”或其依赖项之一。不是有效的Win32应用程序。 (HRESULT的异常:0x800700C1)
为什么这会导致此错误?在将这些DLL放入System32和SysWOW64文件夹中之前,该应用程序未在VM中运行。
有人有什么想法吗?
TIA, 道格
解决方法
@Nandosytle,我试图以64位应用程序运行。作为64位,它可以在我的开发系统和构建服务器上正常运行。移动Windows dll的各种调试版本可以使其在VM中运行。要使其在目标计算机上运行,我必须重新编译CLRWrapper及其包装为x86的代码,并将C#应用程序更改为x86。完成后,应用程序可以在目标计算机上正常运行。
还是不太清楚为什么这会使事情变得更好。抱怨奇怪,要求提供文件的调试版本。我想这可以归结为C ++正在调试和C#正在发布。虽然那真的不应该。
还是头疼的人。
道格