【发布时间】:2012-01-17 08:36:09
【问题描述】:
我们有一个用 C++ 编写的混合模式 DLL,它包装原生 C++ DLL 并公开托管类。在公开的托管类中,我们使用 Vector3D 等类型的方法参数,它们是 PresentationCore.DLL 的一部分。
因此,混合模式 C++ 代码需要引用 PresentationCore.DLL。我们通过
#using <PresentationCore.dll>
这需要项目的搜索路径包含 PresentationCore.dll 所在的文件夹。
这很糟糕,因为这些文件夹在不同的机器上有所不同,我们的项目需要在几台机器上编译而不更改。目前,我们已经通过在我们的代码库中包含一个 PresentationCore.dll 的副本来解决这个问题,这显然不是一个好的解决方案。
我将不胜感激我们如何绕过指定应该可以通过 GAC 完全访问的 DLL 的显式路径的建议。
【问题讨论】:
-
GAC 中不是presentationcore 吗? V3 和 V4(x86 和 AMD 64)在我的 GAC 中。是否需要为 MC++ 中的 GACed 程序集添加搜索路径
-
是的,它在 GAC 中。但是,C++ 编译器似乎没有看到那里,因为如果 dll 不在直接搜索的路径中,则 using 语句将失败。
标签: c++ gac using managed mixed-mode