Ste*_*eve 9 c# dll visual-studio-2008
我有一个C#项目A,它使用.net包装器DLL和本机DLL.我将.net包装器DLL添加到项目A的引用列表中.由于包装器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中复制依赖链的文件的机制是什么?非常感谢.
基本上参考链不传播,它是由最上面的组件(exe文件,网址等),以确保它有它需要的一切,无论是本地或(例如有管理的dll)的GAC.您需要将文件作为"复制到输出"添加到exe/web站点.