我有一个带有C#包装器的非托管dll集合,我正在从C#项目调用它。我添加了一个构建事件行,如下所示:
mkdir ..\Release
mkdir ..\Debug
copy ..\..\Includes\*.dll ..\Release\*.dll
copy ..\..\Includes\*.dll ..\Debug\*.dll
问题是,当我去发布应用程序时,这些dll不包括在内,并且发布比无用更糟糕,因为它会创建一个运行的应用程序,直到你调用其中一个dll。
那么,在发布项目时如何包含非托管dll?
答案 0 :(得分:2)
答案是:不要发布此内容,而是使用Windows安装程序,as described here.
答案 1 :(得分:1)
我正在调查同样的问题。关于这个主题的文献确实非常稀少!
我能看到的唯一解决方案是将非托管DLL作为嵌入式资源嵌入到程序集中,并在调用任何函数之前以编程方式将其解压缩到执行路径。