gpt4 book ai didi

c# - 32 位 DLL 未正确构建

转载 作者:行者123 更新时间:2023-11-30 18:33:44 25 4
gpt4 key购买 nike

我们有一个 c# 可执行文件,它加载一个用 C++ 编写的 32 位 dll,动态加载另一个 32 位 dll(第一个 dll 是一个包装器)。

当这是在 32 位机器(使用 VS 工具集 v100)上构建时,它一切正常。

当它在 64 位机器(使用 VS 工具集 v110)上构建时,它可以在某些机器上运行,但在其他机器上它会在包装器 dll 上获得 FileNotFoundException。它在一些 64 位机器上工作,在一些机器上失败,并且在至少一台 32 位机器上失败。

失败发生在Assembly.LoadFrom,location来自Assembly.GetExecutingAssembly().Location。 dll 与 exe 位于同一目录中,后者构建为 x86。

如果在 64 位机器上构建以获得失败版本,那么我放入一个在 32 位机器上构建的包装器 dll 版本,它可以正常工作(所以它不是真正的文件未找到问题,而是一个“正确的” '找不到文件)。

知道为什么会失败吗?是构建机器还是工具集?或者是其他东西?我可以在构建中设置什么以使其正常工作(我想继续在 64 位机器上构建)吗?

最佳答案

您是否在客户端机器上安装了所有依赖 dll?与 VC Runtime 一样,您还依赖其他库吗?

关于c# - 32 位 DLL 未正确构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com