(作为评论可能比完整的答案更好,但我的尘土飞扬的 SO acct. 还没有足够的代表。)
与 OP 一样,我也使用嵌入式 Python 2.7 和其他一些本机程序集。
使这个问题复杂化的是,我的应用程序是一个运行在 64 位 IIS Express (VS2013) 之上的中型 .Net 解决方案。
我尝试了 Dependency Walker(很棒的程序,但已经过时无法帮助解决此问题)和 Process Monitor(ProcMon——它可能确实找到了一些提示,但即使我使用过滤器,问题也被隐藏在数千个不相关的操作,更好的过滤器可能会有所帮助)。
但是,非常感谢 Michael Cooper! 您的步骤和 Process Explorer (procexp) 让我很快找到了一个整天都在躲避的解决方案。
我可以在 Michael 的出色帖子中添加一些注释。
- 我不仅忽略了(即保持不变)\WinSxS\... 文件夹,还忽略了 \System32\... 文件夹。
最终我发现 msvcr90.dll 是从以下位置拉进来的:
- C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64
通过我的路径,我找到了上述和另一个类似的目录,它似乎包含 32 位版本。我删除了这两个,重新启动并... STILL 有问题。
所以,我再次按照 Michael 的步骤进行操作,发现 另一个 msvcr90.dll 现在正在从以下位置加载:
- C:\Program Files\Intel\iCLS 客户端\
再次浏览我的路径,我找到了上述目录以及该目录的 (x86) 版本。所以,我删除了这两个,应用了更改,重新启动了 VS2013 并......
不再出现 R6034 错误!
我不禁对英特尔这样做感到沮丧。实际上,我在网上的其他地方找到了关于从路径中删除 iCLS 客户端的提示。我试过了,但症状是一样的,所以,我认为这不是问题。可悲的是,iCLS 客户端和 OpenCL SDK 正在标记我的 iisexpress。如果我有幸删除了其中任何一个,R6034 错误仍然存在。为了解决这个问题,我不得不切除他们两个。
再次感谢 Michael Cooper 和其他所有人的帮助!