好吧,在进行了大量研究并尝试了几乎所有我能找到的托管 CPP Redist 以及尝试将我的 DLL 本地复制到应用程序的执行目录之后,我无法弄清楚这个混合模式库缺少哪些依赖项。
基本上我有一个大型 C# 应用程序,我正在尝试使用我制作的混合模式库。在开发机器上它可以完美运行(当然),但是在需要加载库以使用它时部署它,因为缺少 CRT 依赖项(我假设)。
我已经使用依赖遍历器检查所有引用的 DLL,并确保它们存在于部署机器上,但没有运气,我想知道是否可能缺少一些需要注册的依赖项,但我不知道是什么.
当代码尝试从混合模式库中实例化一个类时,出现以下异常。
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“USADSI.MAPI,版本=1.0.3174.25238,文化=中性,PublicKeyToken=null”或其依赖项之一。此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。(来自 HRESULT 的异常:0x800736B1)
我正在使用指定了 /clr:oldSyntax 的 VS2008 SP1 编译库。
中间清单如下所示:
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
我可以根据需要提供更多信息,不幸的是我并不精通制作混合模式库,所以这让我很失望。
如果有人可以提供任何建议,我将不胜感激!