如何在.NET中启用程序集绑定失败日志记录(Fusion)?
我有一个ac#类库项目,它使用在系统上注册的COM dll.我现在想要将COM dll部署为并排程序集,因此我不必注册它,也不必干扰可能使用不同版本的dll的其他应用程序.
我已经使用add new item菜单将app.manifest添加到c#项目中,但我不确定下一步该做什么.在项目属性/应用程序/图标和清单中,清除了清单下拉列表.我不知道怎么过去.我添加了一个清单文件,为什么它不在下拉列表中?
我有一个适用于C++应用程序的COM DLL的清单,我想我保持原样.现在我需要知道如何为c#项目编辑app.manifest.我将首先添加一个已知良好的依赖元素.但我需要一个关于如何设置它的教程,我不认为它覆盖在任何地方.
我正在使用VS2008
我已经在我的项目中使用 NuGet 管理器安装了最新的 OpenCVSharp 2 (2.4.10.201...)。有关 OpenCVSharp.CvMat 的所有内容都工作正常(加载、操作等),因此我确信安装是正确的。
但是我根本无法使用 OpenCVSharp.CPlusPlus!问题是它不加载 OpenCvSharpExtern.dll。
try-catch 块显示错误:
try
{
Mat mat = new Mat();
} catch (Exception err)
{
Console.WriteLine( err );
}
System.TypeInitializationException: The type initializer for 'OpenCvSharp.CPlusPlus.Mat' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at OpenCvSharp.CPlusPlus.NativeMethods.core_Mat_sizeof()
at OpenCvSharp.CPlusPlus.Mat..cctor()
--- End of inner exception stack trace ---
at OpenCvSharp.CPlusPlus.Mat..ctor()
at MainClass.Main() in C:\Users\kotsias\Documents\Visual Studio 2015\Projects\MyCVSharp\ConsoleApplication1\Test.cs:line 14
Run Code Online (Sandbox Code Playgroud)
OpenCvSharpExtern.dll与我的 …
我有一个调用C ++ dll的32位.Net应用程序Winform。我们将该应用程序打包到一个安装程序中,它可以在至少20台左右的计算机上安装并正常运行。该应用程序最初是开发的,可以在Win 7 x64机器(我的机器)上正常运行。
但是,当我在老板桌面(Win 7 x64)上运行它时,该应用程序将无法启动。哦耶...
当我尝试启动该应用程序时,出现一个JIT对话框
System.IO.FileNotFoundException:找不到指定的模块。(来自HRESULT的异常:0x8007007E)
当我运行时依赖于老板计算机上的exe时,它说该应用程序exe是x86,但所有依赖的dll位于x64并将其标记为错误。当我运行时,取决于我机器上的应用程序,exe和dll都标记为x86。
机器之间如何改变?安装程序只是以正常方式解包和复制,并且可以在许多其他x64机器上正常工作...
自然,只有在距离他两个小时的机器上才坏了,我们正在进行一次贸易展览。叹。很迷惑...
================已解决==================
因此,我们对其进行了修复。查找丢失的dll有点棘手。
首先,我们搞砸了,我们为x64盒运行了错误版本的depends。因此,它错误地报告了该应用程序正在寻找x64 dll。如果我们运行了正确的版本,我认为我们会早点发现此问题。
为我们解决问题的方法是查看来自System Internals 的Process Monitor日志。它记录每个文件访问和注册表读取。日志很快显示在Direct X 11 dll上读取失败。
原来,其他应用程序的先前安装程序已经安装了某些 DX11 dll。这愚弄了我们的安装程序,它跳过了DirectX 11步骤,因此我们缺少了一个dll。
感谢您的帮助!