gpt4 book ai didi

c# - 为什么没有将 native DLL 复制到输出目录

转载 作者:太空狗 更新时间:2023-10-29 17:54:26 28 4
gpt4 key购买 nike

我有一个 C# 项目 A,它使用 .net 包装器 DLL 和 native DLL。我将 .net 包装器 DLL 添加到项目 A 的引用列表中。由于包装器 DLL 仅在它们位于同一文件夹中时才与 native DLL 一起使用,因此应将 native DLL 复制到项目 A 的输出目录中。我实现了这个通过将 native DLL 添加为项目 A 下的内容文件,并将其复制操作设置为复制(如果较新)。这很好。

如果一个C#项目B直接引用了项目A,VS会将项目A使用的所有依赖文件复制到项目B的输出目录。这意味着包装DLL和 native DLL将被复制到项目B的输出目录以及。这也很好用。

然后我又多了一个C#项目C,它只直接引用了项目B,并没有直接引用项目A。有趣的是,VS不会将原生DLL复制到项目C的输出目录中,这正是我想要的否则,当项目 C 使用项目 B 的功能并寻找 native DLL 以使用包装器 DLL 时,它不会找到它。

有人能解释一下为什么VS不把原生DLL复制到项目C的输出目录吗? VS中复制链依赖文件的机制是什么?非常感谢。

最佳答案

基本上引用链不会传播,它取决于最顶层的程序集(exe、网站等)以确保它拥有它需要的一切,无论是在本地还是在(例如托管 dll)中政府咨询委员会。您需要将文件作为“复制到输出”添加到 exe/网站。

关于c# - 为什么没有将 native DLL 复制到输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856278/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com