我有一个使用.net包装器动态链接库和本机动态链接库的C#项目A。我将.net包装器DLL添加到项目A的引用列表中。由于包装器DLL只有在本机DLL和本机DLL在同一文件夹中时才能工作,因此本机DLL应该复制到项目A的输出目录中。为此,我将本机DLL作为内容文件添加到项目A下,并将其复制操作设置为如果更新则复制。这很好。
如果C#项目B直接引用项目A,VS会将项目A使用的所有相关文件复制到项目B的输出目录中。这意味着包装器DLL和本机DLL也会复制到项目B的输出目录中。这也可以很好地工作。
然后我又有了另一个C#项目C,它只直接引用项目B,而不是项目A。有趣的是,VS不会将本机DLL复制到项目C的输出目录中,这也是我打算做的,否则,当项目C使用项目B的功能并查找本机DLL以与包装器DLL一起工作时,它将找不到它。
有人能解释一下为什么VS不把本地DLL复制到项目C的输出目录下吗?在VS中复制链依赖文件的机制是什么?非常感谢。
发布于 2009-05-13 08:33:12
为什么不在项目A中添加本机dll作为引用呢?这将确保当其他库使用A时,它将始终包含在内。
编辑:不要紧,只有当动态链接库是COM或.NET组件时才有效。
https://stackoverflow.com/questions/856278
复制相似问题