如何将cpp/cli文件显式链接到c#library.dll



我有一个c++/CLI库,它反过来调用一个c#库。这很好,它隐含着联系,一切都与世界息息相关。但由于各种原因,我们的自动化构建过程并没有对图书馆进行很好的处理,除非我们将图书馆转移到我们宁愿不让它们进入的位置,也不愿将它们纳入我们的构建过程,否则图书馆就找不到彼此。

有人建议我,我们/我可以编写一个使用XCOPY的构建后事件。但假设我们不想那样做。

另一个建议是显式加载dll。Windows说要显式链接"应用程序必须在运行时进行函数调用以显式加载DLL。"问题是,微软的例子不足以让我的小脑袋理解如何继续这个想法。更糟糕的是,我能找到的唯一例子就是过时了。也许我没有使用正确的搜索词,但我很难在谷歌上找到更多关于它的信息。

我们如何显式地将c++/Cli库链接到c#.dll?

----编辑

好的,我们如何显式地将使用__declspec()导出库的C++/CLI代码链接到C#.dll.

没有"C++/CLI库"这回事,只支持程序集。没有显式或隐式链接,绑定总是在运行时发生。CLR在运行时可以找到程序集,MSDN库中详细描述了用于定位程序集的规则。

在开发代码时,将所有依赖项复制到与EXE相同的目录中是明智的做法。在构建系统的良好支持下,C#和C++规则是不同的。C++项目生成到解决方案的Debug目录,C#项目生成到EXE项目的bin\Debug目录。因此,通常需要更改C++项目的"输出目录"设置或通过生成后事件复制文件才能将所有内容整合在一起。

相关内容

最新更新