3

您好,我有一个由几个较小项目组成的项目解决方案。这些项目通过以下方式依赖于其他一些项目:

(1)具有设备控制功能的本机非托管C++ dll

被……使用。</p>

(2) C# Project 将原生函数包装到.Net

被……使用。</p>

(3) 将特殊设备的适配器包装到由框架定义的更一般的抽象层

被……使用。</p>

(4) 一个简单的示例实现尝试通过抽象框架使用这个原生设备接口

现在的问题:本机 dll (1) 作为“现有项目”添加到 .Net 包装器项目 (2) 中,其中“构建事件 = 内容”和“复制到输出... = 始终”设置为“Hans Passant”这个问题的解决方案。本机 dll 通过 DllImportAttribute 在此包装器中使用。这适用于这个项目。dll 将被复制到输出目录,并且可以被包装器找到。

包装器 (2) 用作适配器包装器项目 (3) 的“参考”,并且本地 dll (1) 也被复制到输出目录,并且可以被 .Net 包装器 (2) 找到和使用。但是……</p>

.. 当我将适配器包装器项目 (3) 添加到简单示例项目 (4) 作为“参考”时,本机 dll (1) 将不会被复制到该示例项目 (4) 的输出目录中。因此 .Net 包装器 (2) 将找不到 dll 并导致 System.DllNotFoundException。

我的问题是:我怎样才能使这项工作,当我将适配器包装器项目 (3) 添加到另一个项目时,所有必需的并且位于输出目录中的 dll (包括本机 dll (1)),都是复制到引用项目的输出目录?正如Marc Gravell所说,这没有将本机 dll 作为资源添加到示例实现中。

非常感谢,J

4

1 回答 1

1

也许我遗漏了一些东西,但是如何将每个项目的输出路径更改为一个公共的“bin”文件夹呢?

于 2014-04-11T18:24:28.977 回答